Page 1 of 1

VBA:compile error เพราะอะไรครับ

Posted: Mon Jun 03, 2019 7:27 pm
by yodpao.b
VBA:compile error เพราะอะไรครับ
พอกด ok สีน้ำเงินขึ้นที่ Date สีเหลืองขึ้นที่ Private Sub UserForm_Initialize()
1.JPG
1.JPG (44.68 KiB) Viewed 58 times
เครื่องที่ทำงานที่ผมใช้ก็ทำงานได้ปกติ
แต่พอไปใช้เครื่องอื่น เป็น excel 2007 ก็ compile error ทั้งๆทีก่อนหน้านี้เครื่องที่เป็นปัญหาก็เล่นได้
ลืมบอกครับน้องที่ทำงานเขาเขียนโตดเพิ่มในส่วนอื่น
แต่เขาบอกว่าไม่ใช้สาเหตุนี้
เขาบอกว่าเครื่องมันฟ้องไม่รู้จัก date

Code: Select all

Private Sub UserForm_Initialize()                                                                       'ตอนเปิดปฏิธินขึ้นมา
    On Error Resume Next
    If Me.MonthView1.Value <> ActiveCell.Value Then                                                     'ถ้าวันที่ที่โชว์ไม่เท่ากับวันที่ในช่องที่เลือก ให้
         Me.MonthView1.Value = ActiveCell.Value                                                                      'โชว์วันที่ในช่องที่เลือกอยู่ (ถ้ามีวันที่เดิมอยู่แล้ว ให้โชว์หน้าปฏิธินที่วันที่เดิมอยู่)
    End If
    If ActiveCell.Value = "" Then                                                                                              'ถ้าช่องที่เลือกไม่มีค่า ให้
        Me.MonthView1.Value = Date                                                                                        'ให้โชว์หน้าที่มีวันที่ปัจจุบัน(Date คือวันที่ตามเครื่องคอม)
    End If
End Sub
แก้ไขอย่างไรดีครับ
เปลี่ยน date เป็นอย่างอื่นได้ไหมครับ
ผมลอง คอมเมน บรรทัด date มันก็เปิดฟอรมได้ครับ

Re: VBA:compile error เพราะอะไรครับ

Posted: Mon Jun 03, 2019 8:34 pm
by snasui
:D ลองทดสอบค้นหาคำว่า Date ใน Code ของไฟล์นั้นว่าพบที่ไหนบ้าง กี่ที่ครับ

Re: VBA:compile error เพราะอะไรครับ

Posted: Mon Jun 03, 2019 9:45 pm
by yodpao.b
snasui wrote: Mon Jun 03, 2019 8:34 pm ลองทดสอบค้นหาคำว่า Date ใน Code ของไฟล์นั้นว่าพบที่ไหนบ้าง กี่ที่ครับ
ฟอรมนี้มีที่เดียว

ลองเปิดฟอร์มอื่นดู ไม่ใช้ Date อย่างเดียว
อะไรที่เป็นวันที่ ฟ้อง error ทุกที
ยกตัวอย่าง Format ก็เป็น
2.JPG
2.JPG (27.25 KiB) Viewed 51 times
แนะนำเยื้องต้นก็ได้นะครับ


พรุ่งนี้ผมต้องไปปรึกษาน้องที่ทำงาน มันแปลก
และผมคงต้องไปหาไฟล์เก่าที่เพิ่งเริ่มทำมาลอง Run ดู

Re: VBA:compile error เพราะอะไรครับ

Posted: Tue Jun 04, 2019 11:33 am
by yodpao.b
สรุป ว่าเติม

VBA.DateTime.Date
ก็ใช้ได้ครับ

ทุกที่ทีเป็นปัญหาตั้องมี VBA.xxxxx.format
ในเมื่อแต่ก่อนก็ Run ได้(แต่ก่อน code ที่เขียนเข้าใจงาย และ ยังมีน้อย)
สาเหตุเป็นเพราะอะไร ครับ

Re: VBA:compile error เพราะอะไรครับ

Posted: Tue Jun 04, 2019 8:51 pm
by snasui
yodpao.b wrote: Tue Jun 04, 2019 11:33 am สาเหตุเป็นเพราะอะไร ครับ
:D เข้าใจว่าเกิดจากการใช้ date เป็นตัวแปร และเนื่องจากว่า date เป็นฟังก์ชั่นของ VBA ทำให้โปรแกรม Compile แล้วเกิดผิดพลาดครับ

การใช้ฟังก์ชั่นของ VBA จึงควรจะนำหน้าด้วย VBA เสมอ เช่น VBA.Mid, VBA.Left, VBA.Right เป็นต้น

การเขียนฟังก์ชั่น เขียนตัวแปรต่าง ๆ จะต้องไม่ตรงกับฟังก์ชั่นและจะต้องไม่ตรงกับคำสงวนของ VBA ทั้งหลาย เช่น Sub, Dim, Private ฯลฯ

Re: VBA:compile error เพราะอะไรครับ

Posted: Wed Jun 05, 2019 9:46 pm
by yodpao.b
ตรับ