EXCEL TOOLS
Excel Add-ins ที่พัฒนาโดยคุณสันติพงศ์ ณสุย (MVP Excel 2010-2020) ด้วยภาษา C# เพื่อแก้ไขปัญหาไฟล์ใหญ่ คำนวณนาน ทำงานช้า จัดการข้อมูลต่าง ๆ ที่ทำงานประจำวันได้อย่างสะดวกรวดเร็ว สนใจคลิกไปดูได้ที่นี่ครับ => Excel Tools
Excel Add-ins ที่พัฒนาโดยคุณสันติพงศ์ ณสุย (MVP Excel 2010-2020) ด้วยภาษา C# เพื่อแก้ไขปัญหาไฟล์ใหญ่ คำนวณนาน ทำงานช้า จัดการข้อมูลต่าง ๆ ที่ทำงานประจำวันได้อย่างสะดวกรวดเร็ว สนใจคลิกไปดูได้ที่นี่ครับ => Excel Tools
[code]
และปิดด้วย [/code]
ตัวอย่างเช่น [code]dim r as range[/code]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)Code: Select all
On Error Resume Next
With Worksheets(2)
If Application.CountIf(.Range("a4", .Range("a" & .Rows.Count).End(xlUp)), TextBox13.Text) Then
Set myRange = .Range("A:P")
ElseIf Application.CountIf(.Range("b4", .Range("b" & .Rows.Count).End(xlUp)), TextBox13.Text) Then
Set myRange = .Range("B:P")
End If
End With
'Other code...
Application.Text(txtBox100.text,"dd/mm/yyyy"))
เป็นต้นOn Error Resume Next
ส่วน Code ที่เหลือก็เรียงต่อกันด้านล่าง ให้ปรับมาตามนี้ก่อน ติดตรงไหนค่อยถามกันต่อครับCode: Select all
On Error Resume Next
With Worksheets(2)
If Application.CountIf(.Range("a4", .Range("a" & .Rows.Count).End(xlUp)), TextBox13.Text) Then
Set myRange = .Range("A:P")
ElseIf Application.CountIf(.Range("b4", .Range("b" & .Rows.Count).End(xlUp)), TextBox13.Text) Then
Set myRange = .Range("B:P")
End If
End With
'Set myRange = Worksheets(2).Range("A:P")
Code: Select all
Private Sub CommandButton1_Click()
Dim l As Long
On Error Resume Next
With Worksheets(2)
If Application.CountIf(.Range("a4", .Range("a" & .Rows.Count).End(xlUp)), TextBox13.Text) Then
'Set myRange = .Range("A:P")
l = Application.Match(TextBox13.Text, .Range("a:a"), 0)
ElseIf Application.CountIf(.Range("b4", .Range("b" & .Rows.Count).End(xlUp)), TextBox13.Text) Then
'Set myRange = .Range("B:P")
l = Application.Match(TextBox13.Text, .Range("b:b"), 0)
End If
'Set myRange = Worksheets(2).Range("A:P")
TextBox14.Value = .Cells(l, 1).Value 'Application.WorksheetFunction.VLookup(TextBox13.Text, myRange, 1, False)
TextBox2.Value = .Cells(l, 2).Value 'Application.WorksheetFunction.VLookup(TextBox13.Text, myRange, 2, False)
ComboBox1.Value = .Cells(l, 3).Value 'Application.WorksheetFunction.VLookup(TextBox13.Text, myRange, 3, False)
ComboBox3.Text = .Cells(l, 4).Value 'Application.WorksheetFunction.VLookup(TextBox13.Text, myRange, 4, False)
ComboBox2.Text = .Cells(l, 5).Value 'Application.WorksheetFunction.VLookup(TextBox13.Text, myRange, 5, False)
ComboBox4.Text = .Cells(l, 6).Value 'Application.WorksheetFunction.VLookup(TextBox13.Text, myRange, 6, False)
TextBox3.Value = .Cells(l, 7).Value 'Application.WorksheetFunction.VLookup(TextBox13.Text, myRange, 7, False)
TextBox9.Value = .Cells(l, 8).Value ' Application.WorksheetFunction.VLookup(TextBox13.Text, myRange, 8, False)
TextBox4.Value = .Cells(l, 9).Value 'Application.WorksheetFunction.VLookup(TextBox13.Text, myRange, 9, False)
TextBox10.Value = .Cells(l, 10).Value 'Application.WorksheetFunction.VLookup(TextBox13.Text, myRange, 10, False)
TextBox5.Value = .Cells(l, 11).Value 'Application.WorksheetFunction.VLookup(TextBox13.Text, myRange, 11, False)
TextBox6.Value = .Cells(l, 12).Value 'Application.WorksheetFunction.VLookup(TextBox13.Text, myRange, 12, False)
TextBox11.Value = .Cells(l, 13).Value 'Application.WorksheetFunction.VLookup(TextBox13.Text, myRange, 13, False)
TextBox7.Value = .Cells(l, 14).Value 'Application.WorksheetFunction.VLookup(TextBox13.Text, myRange, 14, False)
TextBox8.Value = .Cells(l, 15).Value 'Application.WorksheetFunction.VLookup(TextBox13.Text, myRange, 15, False)
TextBox12.Value = .Cells(l, 16).Value 'Application.WorksheetFunction.VLookup(TextBox13.Text, myRange, 16, False)
TextBox12.Value = .Cells(l, 17).Value 'Application.Text(TextBox12.Text, "dd/mm/yyyy")
'Other code
End With
End Sub
Code: Select all
TextBox12.Value = Application.Text(TextBox12.Text, "dd/mm/yyyy")
Code: Select all
TextBox12.Value = Application.Text(.Cells(l, 17).Value2,"dd/mm/yyyy")
Code: Select all
Private Sub CommandButton3_Click()
Dim Row As Long
Row = Application.Match(TextBox13.Text, Sheets(2).Range("a:a"), 0)
With Sheets(2)
.Cells(Row, 1).Value = TextBox13.Text
.Range("a" & Row).Value = TextBox14.Text
.Cells(Row, 2).Value = TextBox2.Text
.Cells(Row, 3).Value = ComboBox1.Text
.Cells(Row, 4).Value = ComboBox3.Text
.Cells(Row, 5).Value = ComboBox2.Text
.Cells(Row, 6).Value = ComboBox4.Text
.Cells(Row, 7).Value = TextBox3.Text
.Cells(Row, 8).Value = TextBox9.Text
.Cells(Row, 9).Value = TextBox4.Text
.Cells(Row, 10).Value = TextBox10.Text
.Cells(Row, 11).Value = TextBox5.Text
.Cells(Row, 12).Value = TextBox6.Text
.Cells(Row, 13).Value = TextBox11.Text
.Cells(Row, 14).Value = TextBox7.Text
.Cells(Row, 15).Value = TextBox8.Text
.Cells(Row, 16).Value = WorksheetFunction.Text(TextBox12.Value, "dd/mm/yyyy")
End With
MsgBox ("Save Complete")
End Sub
มีปัญหาลักษณะใดช่วยอธิบายรายละเอียดประกอบ จะได้ตอบต่อไปจากนั้นครับmmnck wrote:ขอบคุณมากคะ ตอนนี้บันทึกลงในรูปแบบของวันที่ได้แล้วคะ
แต่เวลาแก้ไข หากแก้ไขโดยค้นหาจากรหัส สามารถบันทึกได้ปกติคะ
ค้นหาจากชื่อพนักงาน จะมีปัญหาในการบันทึกคะ
Code จะอยู่ใน searchPer ในส่วนของปุ่ม Save คะ
Code: Select all
Private Sub CommandButton3_Click()
Dim Row As Long
Row = Application.Match(TextBox13.Text, Sheets(2).Range("a:a"), 0)
With Sheets(2)
.Cells(Row, 1).Value = TextBox13.Text
.Range("a" & Row).Value = TextBox14.Text
.Cells(Row, 2).Value = TextBox2.Text
.Cells(Row, 3).Value = ComboBox1.Text
.Cells(Row, 4).Value = ComboBox3.Text
.Cells(Row, 5).Value = ComboBox2.Text
.Cells(Row, 6).Value = ComboBox4.Text
.Cells(Row, 7).Value = TextBox3.Text
.Cells(Row, 8).Value = TextBox9.Text
.Cells(Row, 9).Value = TextBox4.Text
.Cells(Row, 10).Value = TextBox10.Text
.Cells(Row, 11).Value = TextBox5.Text
.Cells(Row, 12).Value = TextBox6.Text
.Cells(Row, 13).Value = TextBox11.Text
.Cells(Row, 14).Value = TextBox7.Text
.Cells(Row, 15).Value = TextBox8.Text
.Cells(Row, 16).Value = WorksheetFunction.Text(TextBox12.Value, "dd/mm/yyyy")
End With
MsgBox ("Save Complete")
End Sub