
ปกติการตั้งชื่อ Control กับแบบของ Control ควรจะสอดคล้องกันครับ ถ้าเป็น ComboBox ปกติจะขึ้นต้นชื่อด้วย cb ยกตัวอย่างเช่น cbName, cbSignal ฯลฯ
ลองปรับ Code ใหม่เพื่อให้กระชับและแสดงผลที่ถูกต้องตามด้านล่างครับ
ที่ชีท FormPrint ปรับ Event Worksheet_SelectionChange เป็นด้านล่าง
Code: Select all
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("I13:N13,I15:K15,I17:K17,I19:K19,V13:AB13,V15:AB17,V19:AB19,V21:X21")) _
Is Nothing Then
Form_4Edit.Show
End If
If Not Intersect(Target, Range("$F$25:$G$25")) Is Nothing Then
Form_5Edit.txtBox1.Text = "1"
ElseIf Not Intersect(Target, Range("$F$27:$G$27")) Is Nothing Then
Form_5Edit!txtBox1.Text = "2"
ElseIf Not Intersect(Target, Range("$F$29:$G$29")) Is Nothing Then
Form_5Edit!txtBox1.Text = "3"
ElseIf Not Intersect(Target, Range("$F$31:$G$31")) Is Nothing Then
Form_5Edit.txtBox1.Text = "4"
ElseIf Not Intersect(Target, Range("$F$33:$G$33")) Is Nothing Then
Form_5Edit.txtBox1.Text = "5"
ElseIf Not Intersect(Target, Range("$F$35:$G$35")) Is Nothing Then
Form_5Edit.txtBox1.Text = "6"
ElseIf Not Intersect(Target, Range("$F$37:$G$37")) Is Nothing Then
Form_5Edit.txtBox1.Text = "7"
ElseIf Not Intersect(Target, Range("$F$39:$G$39")) Is Nothing Then
Form_5Edit.txtBox1.Text = "8"
ElseIf Not Intersect(Target, Range("$F$41:$G$41")) Is Nothing Then
Form_5Edit.txtBox1.Text = "9"
ElseIf Not Intersect(Target, Range("$F$43:$G$43")) Is Nothing Then
Form_5Edit.txtBox1.Text = "10"
ElseIf Not Intersect(Target, Range("$F$45:$G$45")) Is Nothing Then
Form_5Edit.txtBox1.Text = "11"
ElseIf Not Intersect(Target, Range("$F$47:$G$47")) Is Nothing Then
Form_5Edit.txtBox1.Text = "12"
ElseIf Not Intersect(Target, Range("$F$45:$G$45")) Is Nothing Then
Form_5Edit.txtBox1.Text = "13"
ElseIf Not Intersect(Target, Range("$F$51:$G$51")) Is Nothing Then
Form_5Edit.txtBox1.Text = "14"
End If
Form_5Edit.Show
End Sub
ที่ Form_5Edit เปลี่ยนที่ txtBox1_Change เป็นด้านล่าง
Code: Select all
Private Sub txtBox1_Change()
On Error Resume Next
Sheets("CalPrint").Select
Range("I11").Select
Do While ActiveCell <> ""
If CStr(ActiveCell.Value) = txtBox1.Text Then
TextBox01.Text = ActiveCell.Offset(0, 1).Value
TextBox02.Text = ActiveCell.Offset(0, 2).Value
Sheets("CalPrint").Select
TextBox03.Text = ActiveCell.Offset(0, 3).Value
ListBox1.Text = ActiveCell.Offset(0, 3).Value
TextBox21.Text = ActiveCell.Offset(0, 4).Value
TextBox22.Text = ActiveCell.Offset(0, 5).Value
TextBox23.Text = ActiveCell.Offset(0, 6).Value
TextBox24.Text = ActiveCell.Offset(0, 7).Value
TextBox25.Text = ActiveCell.Offset(0, 8).Value
Exit Sub
End If
ActiveCell.Offset(1, 0).Select
Loop
End Sub