snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งาน Macro และ VBA
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
yodpao.b
Gold
Posts: 1608 Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard
#1
Post
by yodpao.b » Fri May 15, 2015 12:50 pm
ใช้ วินโดว์ 2008 ( Run VBA แล้ว Eeror)
ปกติใช้ windows 7 แต่บางเครื่องของที่ทำงาน อัพเดทเครื่องใหม่ เป็นเครื่องชนิดที่มี CPU อยู่ที่จอมอนิเตอร์ และใช้ windows 8
คำถาม เมื่อนำไฟล์ที่มี VBA ไปใช้กับเครื่องชนิดที่มี CPUอยู่ที่จอมอนิเตอร์และใช้ windows 8 ไฟล์จะ eeror ครับ
จากการตรวจสอบพบจุดที่ eeror โคดดังนี้
Code: Select all
For Each sht In ThisWorkbook.Worksheets
sht.Protect PassWord:="abc123"
Next
ที่ต้วอักษรจะแสดงแถบสีเหลือง ที่คำว่า sht ครับ จะแก้ไขโคดอย่างไรดีครับ
(จะแก้ไขอย่างไรให้ใช้งานได้ทั้ง windows 7 และ windows 8
DhitiBank
Gold
Posts: 1676 Joined: Mon Oct 15, 2012 12:07 am
#2
Post
by DhitiBank » Fri May 15, 2015 1:22 pm
ข้อความที่ฟ้องเวลาเกิด error คืออะไรครับ
หากแนบไฟล์ได้จะดีมากครับ อาจารย์และเพื่อนๆ จะได้ช่วยทดสอบให้ได้ เพราะหากดูจากโค้ดที่ตัดมา หากประกาศตัวแปรครบถ้วนก็น่าจะรันใน Window 8 ได้นะครับ (ผมมีเครื่องหนึ่งที่ใช้ Window 8 + Office 2013 ก็รันโค้ดลักษณะนี้ได้) คงต้องดูโค้ดที่เหลือใน Procedure ครับ
yodpao.b
Gold
Posts: 1608 Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard
#3
Post
by yodpao.b » Fri May 15, 2015 2:09 pm
ขอโทษครับที่ลืมแนบไฟล์
ใช้ วินโดว์ 2008 ( Run VBA แล้ว Eeror)
ปกติใช้ windows 7 แต่บางเครื่องของที่ทำงาน อัพเดทเครื่องใหม่ เป็นเครื่องชนิดที่มี CPU อยู่ที่จอมอนิเตอร์ และใช้ windows 8
คำถาม เมื่อนำไฟล์ที่มี VBA ไปใช้กับเครื่องชนิดที่มี CPUอยู่ที่จอมอนิเตอร์และใช้ windows 8 ไฟล์จะ eeror ครับ
จากการตรวจสอบพบจุดที่ eeror โคดดังนี้
Code: Select all
For Each sht In ThisWorkbook.Worksheets
sht.Protect PassWord:="abc123"
Next
ที่ต้วอักษรจะแสดงแถบสีเหลือง ที่คำว่า sht ครับ จะแก้ไขโคดอย่างไรดีครับ
(จะแก้ไขอย่างไรให้ใช้งานได้ทั้ง windows 7 และ windows 8)
มีไฟล์แนบมาด้วยครับ
Attachments
aaaa.xls
(266.5 KiB) Downloaded 6 times
DhitiBank
Gold
Posts: 1676 Joined: Mon Oct 15, 2012 12:07 am
#4
Post
by DhitiBank » Fri May 15, 2015 2:51 pm
ลองประกาศตัวแปร sht ลงไปด้วยครับ
Code: Select all
Sub ProtectAllsheets()
Dim sht As Worksheet
For Each sht In ThisWorkbook.Worksheets
sht.Protect PassWord:="abc123"
Next
End Sub
snasui
Site Admin
Posts: 31253 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#5
Post
by snasui » Fri May 15, 2015 3:02 pm
เครื่องที่จะนำไฟล์นี้ไปใช้แล้วให้ Run ได้เหมือนกับเครื่องอื่นจะต้องติดตั้ง Microsoft Calendar Control 8.0 เข้าไปด้วย ตามภาพด้านล่างครับ
Attachments
CalendarControl CldCt.png (26.73 KiB) Viewed 71 times
DhitiBank
Gold
Posts: 1676 Joined: Mon Oct 15, 2012 12:07 am
#6
Post
by DhitiBank » Fri May 15, 2015 3:43 pm
snasui wrote: เครื่องที่จะนำไฟล์นี้ไปใช้แล้วให้ Run ได้เหมือนกับเครื่องอื่นจะต้องติดตั้ง Microsoft Calendar Control 8.0 เข้าไปด้วย ตามภาพด้านล่างครับ
ขออภัยครับ ไอ้เราก็นึกว่าเป็นเพราะไม่ได้ประกาศตัวแปร ถึงว่าพอแก้แล้วไม่ติด error ตรงป้องกันชีท ก็ยังติด error เวลาสลับไปชีทอื่น
แล้วต้องติดตั้งยังไงครับอาจารย์ ทำไมใน reference ไม่มีให้เลือกเลยครับ (excel 2010)
อ้อ... เจอแล้วครับ พอดีลองค้นหาดูก็เจอหน้านี้
http://www.snasui.com/viewtopic.php?f=9&t=2994
ต้องติดตั้งเสริมเข้าไปนี่เอง
yodpao.b
Gold
Posts: 1608 Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard
#7
Post
by yodpao.b » Wed May 20, 2015 2:38 pm
เรียนอาจารย์ครับ
Capture2.PNG (18.27 KiB) Viewed 57 times
ทำตามอาจารย์พอเข้าไป set ตามรูปที่อาจารย์ให้ Microsoft Calendar Control 8.0 มันมีอยู่แล้วครับ
ผลคือเมื่อเปิดเข้าไฟล์ใหม่ก็ยัง Eeror ครับ
จึงลองแก้แบบประกาศตัวแปล ผลที่ได้ปรากฏ คือ เมื่อเปิดไฟล์ขึ้นใหม่
ไม่EErorครับ ข้อดี ok ครับ
แต่ปัญหาเกี่ยวกับปฏิทินยังมีอยู่ครับ คือเมื่อคลิกดูปฎิทินผลที่ได้คือ EEror ครับจึงลองเข้าไปดู code ปรากฎว่าปฎิทินหายครับ
ดังรูปด้านล่าง (ผมเข้าใจว่าที่เคย เรียกไฟล์ปฎิทินมากับคอมพิวเตอรืรุ่นก่อนหน้านี้มันไม่มาด้วยครับ)
Capture1.PNG (8.36 KiB) Viewed 57 times
คำถามจะเรียกปฏิทินกับมาได้อย่างไรครับ
DhitiBank
Gold
Posts: 1676 Joined: Mon Oct 15, 2012 12:07 am
#8
Post
by DhitiBank » Wed May 20, 2015 2:50 pm
yodpao.b wrote: เรียนอาจารย์ครับ
Capture2.PNG
ทำตามอาจารย์พอเข้าไป set ตามรูปที่อาจารย์ให้ Microsoft Calendar Control 8.0 มันมีอยู่แล้วครับ
ผลคือเมื่อเปิดเข้าไฟล์ใหม่ก็ยัง Eeror ครับ
จึงลองแก้แบบประกาศตัวแปล ผลที่ได้ปรากฏ คือ เมื่อเปิดไฟล์ขึ้นใหม่
ไม่EErorครับ ข้อดี ok ครับ
แต่ปัญหาเกี่ยวกับปฏิทินยังมีอยู่ครับ คือเมื่อคลิกดูปฎิทินผลที่ได้คือ EEror ครับจึงลองเข้าไปดู code ปรากฎว่าปฎิทินหายครับ
ดังรูปด้านล่าง (ผมเข้าใจว่าที่เคย เรียกไฟล์ปฎิทินมากับคอมพิวเตอรืรุ่นก่อนหน้านี้มันไม่มาด้วยครับ)
Capture1.PNG
คำถามจะเรียกปฏิทินกับมาได้อย่างไรครับ
จากรูปที่แนบมา มัน Missing แสดงว่ามันยังหาไม่เจอครับ หากทำตามลิงค์ด้านบน (ที่คุณ bank9597 เอามาแจก) เสร็จแล้ว ต้องเข้าไปแอ็ด Reference ใน VBE โดยกด Browse... (ปุ่มในรูปน่ะครับ) แล้วไปเลือกไฟล์ที่เพิ่งคัดลอกเข้าไปตามลิ้งค์คุณ bank9597 คือต้องเอาไฟล์นี้ไปใส่ทุกเครื่องที่คิดว่าจะใช้ไฟล์นี้น่ะครับ
ผิดพลาดอย่างไร รออาจารย์อีกทีครับ ผมนี่นักเรียน
yodpao.b
Gold
Posts: 1608 Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard
#9
Post
by yodpao.b » Sun Jun 07, 2015 1:09 pm
ทำตามที่คุณ DhitiBank แนะนำแล้วรับ
OK ครับ