Page 1 of 1

1 UserForm ใช้จากปุ่ม Button ในตำแหน่งต่างกัน ต้องปรับโค้ดอย่างไรครับ

Posted: Fri Jul 22, 2022 9:46 am
by 10idlnw
ผมมีปุ่ม 3 ปุ่มที่เมื่อคลิกแล้วจะไปเปิด UserForm ที่ชื่อ FormAddDate ขึ้นมา แล้วบันทึกลง Range ที่กำหนดตามแต่ละปุ่ม Button ในหน้าชีตเดียวกัน ต้องปรับโค้ดอย่างไรครับ
2022-07-22_9-36-27.jpg

Code: Select all

Private Sub CmbUpdate_Click()
    Select Case CommandButton.Control
    Case cmb_Date1
        'ถ้ากดจากปุ่มกรอกวันชำระเงิน ผลลัพธ์ B9 = 20 กรกฎาคม 2565
        Range("B9") = Me.Cbb_D.Value & " " & Me.Cbb_M.Value & " " & Me.Cbb_Y.Value
    Case cmb_Date2
        'ถ้ากดจากปุ่มวันยืม ผลลัพธ์ F10 = 20 กรกฎาคม 2565
        Range("F10") = Me.Cbb_D.Value & " " & Me.Cbb_M.Value & " " & Me.Cbb_Y.Value
    Case cmb_Date3
        'ถ้ากดจากปุ่มวันคืน ผลลัพธ์ J7 = 20 กรกฎาคม 2565
        Range("J7") = Me.Cbb_D.Value & " " & Me.Cbb_M.Value & " " & Me.Cbb_Y.Value
    End Select
    Unload Me
End Sub

Re: 1 UserForm ใช้จากปุ่ม Button ในตำแหน่งต่างกัน ต้องปรับโค้ดอย่างไรครับ

Posted: Fri Jul 22, 2022 11:25 am
by snasui
:D ตัวอย่างการปรับ Code ครับ

เพิ่ม Module1 และประกาศตัวแปร x เป็น

Code: Select all

Public x As Range
ปรับ Code ที่เกี่ยวข้องเป็นด้านล่างครับ

Code: Select all

Private Sub cmb_Date1_Click()
    Set x = Range("b9")
    FormAddDate.Show
End Sub

Private Sub cmb_Date2_Click()
    Set x = Range("f10")
    FormAddDate.Show
End Sub

Private Sub cmb_Date3_Click()
    Set x = Range("j7")
    FormAddDate.Show
End Sub

Code: Select all

Private Sub CmbUpdate_Click()
    
'    Select Case CommandButton.Name
'    Case cmb_Date1
'        'ถ้ากดจากปุ่มกรอกวันชำระเงิน ผลลัพธ์ B9 = 20 กรกฎาคม 2565
'        Range("B9") = Me.Cbb_D.Value & " " & Me.Cbb_M.Value & " " & Me.Cbb_Y.Value
'    Case cmb_Date2
'        'ถ้ากดจากปุ่มวันยืม ผลลัพธ์ F10 = 20 กรกฎาคม 2565
'        Range("F10") = Me.Cbb_D.Value & " " & Me.Cbb_M.Value & " " & Me.Cbb_Y.Value
'    Case cmb_Date3
'        'ถ้ากดจากปุ่มวันคืน ผลลัพธ์ J7 = 20 กรกฎาคม 2565
'        Range("J7") = Me.Cbb_D.Value & " " & Me.Cbb_M.Value & " " & Me.Cbb_Y.Value
'    End Select
    x.Value = Me.Cbb_D.Value & " " & Me.Cbb_M.Value & " " & Me.Cbb_Y.Value
    Unload Me
End Sub