Page 1 of 1

ใช้ วินโดว์ 2008 ( Run VBA แล้ว Eeror)

Posted: Fri May 15, 2015 12:50 pm
by yodpao.b
ใช้ วินโดว์ 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

Re: ใช้ วินโดว์ 2008 ( Run VBA แล้ว Eeror)

Posted: Fri May 15, 2015 1:22 pm
by DhitiBank
ข้อความที่ฟ้องเวลาเกิด error คืออะไรครับ
หากแนบไฟล์ได้จะดีมากครับ อาจารย์และเพื่อนๆ จะได้ช่วยทดสอบให้ได้ เพราะหากดูจากโค้ดที่ตัดมา หากประกาศตัวแปรครบถ้วนก็น่าจะรันใน Window 8 ได้นะครับ (ผมมีเครื่องหนึ่งที่ใช้ Window 8 + Office 2013 ก็รันโค้ดลักษณะนี้ได้) คงต้องดูโค้ดที่เหลือใน Procedure ครับ

Re: ใช้ วินโดว์ 2008 ( Run VBA แล้ว Eeror)

Posted: Fri May 15, 2015 2:09 pm
by yodpao.b
ขอโทษครับที่ลืมแนบไฟล์
ใช้ วินโดว์ 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)

มีไฟล์แนบมาด้วยครับ

Re: ใช้ วินโดว์ 2008 ( Run VBA แล้ว Eeror)

Posted: Fri May 15, 2015 2:51 pm
by DhitiBank
ลองประกาศตัวแปร sht ลงไปด้วยครับ

Code: Select all

Sub ProtectAllsheets()
   Dim sht As Worksheet
   For Each sht In ThisWorkbook.Worksheets
       sht.Protect PassWord:="abc123"
   Next
End Sub

Re: ใช้ วินโดว์ 2008 ( Run VBA แล้ว Eeror)

Posted: Fri May 15, 2015 3:02 pm
by snasui
:D เครื่องที่จะนำไฟล์นี้ไปใช้แล้วให้ Run ได้เหมือนกับเครื่องอื่นจะต้องติดตั้ง Microsoft Calendar Control 8.0 เข้าไปด้วย ตามภาพด้านล่างครับ

Re: ใช้ วินโดว์ 2008 ( Run VBA แล้ว Eeror)

Posted: Fri May 15, 2015 3:43 pm
by DhitiBank
snasui wrote::D เครื่องที่จะนำไฟล์นี้ไปใช้แล้วให้ Run ได้เหมือนกับเครื่องอื่นจะต้องติดตั้ง Microsoft Calendar Control 8.0 เข้าไปด้วย ตามภาพด้านล่างครับ
:oops: ขออภัยครับ ไอ้เราก็นึกว่าเป็นเพราะไม่ได้ประกาศตัวแปร ถึงว่าพอแก้แล้วไม่ติด error ตรงป้องกันชีท ก็ยังติด error เวลาสลับไปชีทอื่น

แล้วต้องติดตั้งยังไงครับอาจารย์ ทำไมใน reference ไม่มีให้เลือกเลยครับ (excel 2010)

อ้อ... เจอแล้วครับ พอดีลองค้นหาดูก็เจอหน้านี้
http://www.snasui.com/viewtopic.php?f=9&t=2994
ต้องติดตั้งเสริมเข้าไปนี่เอง

Re: ใช้ วินโดว์ 2008 ( Run VBA แล้ว Eeror)

Posted: Wed May 20, 2015 2:38 pm
by yodpao.b
เรียนอาจารย์ครับ
Capture2.PNG
Capture2.PNG (18.27 KiB) Viewed 70 times
ทำตามอาจารย์พอเข้าไป set ตามรูปที่อาจารย์ให้ Microsoft Calendar Control 8.0 มันมีอยู่แล้วครับ
ผลคือเมื่อเปิดเข้าไฟล์ใหม่ก็ยัง Eeror ครับ
จึงลองแก้แบบประกาศตัวแปล ผลที่ได้ปรากฏ คือ เมื่อเปิดไฟล์ขึ้นใหม่ ไม่EErorครับ ข้อดี ok ครับ


แต่ปัญหาเกี่ยวกับปฏิทินยังมีอยู่ครับ คือเมื่อคลิกดูปฎิทินผลที่ได้คือ EEror ครับจึงลองเข้าไปดู code ปรากฎว่าปฎิทินหายครับ
ดังรูปด้านล่าง (ผมเข้าใจว่าที่เคย เรียกไฟล์ปฎิทินมากับคอมพิวเตอรืรุ่นก่อนหน้านี้มันไม่มาด้วยครับ)
Capture1.PNG
Capture1.PNG (8.36 KiB) Viewed 70 times
คำถามจะเรียกปฏิทินกับมาได้อย่างไรครับ

Re: ใช้ วินโดว์ 2008 ( Run VBA แล้ว Eeror)

Posted: Wed May 20, 2015 2:50 pm
by DhitiBank
yodpao.b wrote:เรียนอาจารย์ครับ
Capture2.PNG
ทำตามอาจารย์พอเข้าไป set ตามรูปที่อาจารย์ให้ Microsoft Calendar Control 8.0 มันมีอยู่แล้วครับ
ผลคือเมื่อเปิดเข้าไฟล์ใหม่ก็ยัง Eeror ครับ
จึงลองแก้แบบประกาศตัวแปล ผลที่ได้ปรากฏ คือ เมื่อเปิดไฟล์ขึ้นใหม่ ไม่EErorครับ ข้อดี ok ครับ


แต่ปัญหาเกี่ยวกับปฏิทินยังมีอยู่ครับ คือเมื่อคลิกดูปฎิทินผลที่ได้คือ EEror ครับจึงลองเข้าไปดู code ปรากฎว่าปฎิทินหายครับ
ดังรูปด้านล่าง (ผมเข้าใจว่าที่เคย เรียกไฟล์ปฎิทินมากับคอมพิวเตอรืรุ่นก่อนหน้านี้มันไม่มาด้วยครับ)
Capture1.PNG
คำถามจะเรียกปฏิทินกับมาได้อย่างไรครับ
จากรูปที่แนบมา มัน Missing แสดงว่ามันยังหาไม่เจอครับ หากทำตามลิงค์ด้านบน (ที่คุณ bank9597 เอามาแจก) เสร็จแล้ว ต้องเข้าไปแอ็ด Reference ใน VBE โดยกด Browse... (ปุ่มในรูปน่ะครับ) แล้วไปเลือกไฟล์ที่เพิ่งคัดลอกเข้าไปตามลิ้งค์คุณ bank9597 คือต้องเอาไฟล์นี้ไปใส่ทุกเครื่องที่คิดว่าจะใช้ไฟล์นี้น่ะครับ

ผิดพลาดอย่างไร รออาจารย์อีกทีครับ ผมนี่นักเรียน :oops:

Re: ใช้ วินโดว์ 2008 ( Run VBA แล้ว Eeror)

Posted: Sun Jun 07, 2015 1:09 pm
by yodpao.b
ทำตามที่คุณ DhitiBank แนะนำแล้วรับ

OK ครับ