Page 1 of 1

ต้องการให้ 1 UserForm ถูกเรียกใช้กับ Sheet อื่นๆได้ โดยไม่ต้องสร้างของใครของมัน ต้องทำอย่างไรครับ

Posted: Thu Jul 21, 2022 8:47 am
by 10idlnw
ผมมีอยู่ 3 ชีตที่ต้องการใช้ ฟอร์มสำหรับลงวันเดือนปี โดย ชีต1(วันยืม), ชีต2(วันคืน), และ ชีต3(วันชำระค่ายืม) ผมต้องการให้เมือคลิกปุ่ม CmbUpdate ที่อยู่ใน UserForm แล้วแสดงค่าลงใน range ตามตำแหน่งที่กำหนดไว้แต่ละชีต และตรง Caption ของ UserForm ก็ให้เปลี่ยนไปตามชื่อที่กำหนดในแต่ละชีตเช่นกัน โดยใช้ UserForm เดียว ต้องปรับโค้ดหรือกำหนด parameter เพิ่มเติมตรงไหนอย่างไรครับ

2022-07-21_8-36-41.jpg

Code: Select all

Private Sub CmbUpdate_Click()
    Range("B7") = Me.Cbb_D.Value & " " & Me.Cbb_M.Value & " " & Me.Cbb_Y.Value
    Unload Me
End Sub

Private Sub UserForm_Initialize()
    Dim arrDate() As String
    arrDate = Split("20 กรกฎาคม 2565", " ")
    Me.Cbb_D.Text = arrDate(0)
    Me.Cbb_M.Text = arrDate(1)
    Me.Cbb_Y.Text = arrDate(2)
End Sub

Re: ต้องการให้ 1 UserForm ถูกเรียกใช้กับ Sheet อื่นๆได้ โดยไม่ต้องสร้างของใครของมัน ต้องทำอย่างไรครับ

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

Code: Select all

Private Sub CmbUpdate_Click()
    Dim l As Long
    Select Case ActiveSheet.Name
        Case "Input1B7"
            l = 7
        Case "Input2B8"
            l = 8
        Case "MainInputB9"
            l = 9
    End Select
    Range("B" & l) = Me.Cbb_D.Value & " " & Me.Cbb_M.Value & " " & Me.Cbb_Y.Value
    Unload Me
End Sub

Re: ต้องการให้ 1 UserForm ถูกเรียกใช้กับ Sheet อื่นๆได้ โดยไม่ต้องสร้างของใครของมัน ต้องทำอย่างไรครับ

Posted: Thu Jul 21, 2022 12:06 pm
by 10idlnw
ขอบคุณมากครับอาจารย์ select case เอาไปปรับใช้ได้หมดทั้ง caption และ userform ได้หมดเลยครับ