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
Sub Click11111()
If Range("A1").Value = "" Then
MsgBox "โปรดระบุข้อมูลให้ครบถ้วน", vbCritical + vbOKOnly, "แจ้งเตือน"
Else
Dim mylastrow As Long
mylastrow = Sheets("Emp1").Range("A" & Rows.Count).End(xlUp).Row + 1
' Range("A9:D20").Copy
If (Range("F3:F99")) = "พนักงานผลิต 1" Then
Sheets("Emp1").Range("A" & mylastrow).PasteSpecial xlPasteValuesAndNumberFormats, xlPasteSpecialOperationNone, , False
End If
' Sheets("sheet1").Range("D7").ClearContents
MsgBox "บันทึกรายการเรียบร้อยแล้ว ", vbInformation + vbOKOnly, "แจ้งให้ทราบ"
End If
End Sub
Code: Select all
If (Range("F3:F99")) = "พนักงานผลิต 1" Then
Sheets("Emp1").Range("A" & mylastrow).PasteSpecial xlPasteValuesAndNumberFormats, xlPasteSpecialOperationNone, , False
End If
Code: Select all
Sub Click11111()
Dim i As Long
Dim mylastrow As Long
' Range("A9:D20").Copy
With Sheets("Sheet1")
If .Range("A1").Value = "" Then
MsgBox "โปรดระบุข้อมูลให้ครบถ้วน", vbCritical + vbOKOnly, "แจ้งเตือน"
Else
For i = 3 To .Range("A" & .Rows.Count).End(xlUp).Row
If .Range("F" & i) = "พนักงานผลิต 1" Then
.Range("A" & i).Resize(, 11).Copy
mylastrow = Sheets("Emp1").Range("A" & Rows.Count).End(xlUp).Row + 1
Sheets("Emp1").Range("A" & mylastrow).PasteSpecial xlPasteValuesAndNumberFormats, xlPasteSpecialOperationNone, , False
End If
Next i
' Sheets("sheet1").Range("D7").ClearContents
MsgBox "บันทึกรายการเรียบร้อยแล้ว ", vbInformation + vbOKOnly, "แจ้งให้ทราบ"
End If
End With
End Sub
ได้แล้วขอบคุณครับ สอบถามเพิ่มเติมครับpuriwutpokin wrote: ↑Thu May 19, 2022 5:48 pm ปรับดูตามนี้ครับCode: Select all
Sub Click11111() Dim i As Long Dim mylastrow As Long ' Range("A9:D20").Copy With Sheets("Sheet1") If .Range("A1").Value = "" Then MsgBox "โปรดระบุข้อมูลให้ครบถ้วน", vbCritical + vbOKOnly, "แจ้งเตือน" Else For i = 3 To .Range("A" & .Rows.Count).End(xlUp).Row If .Range("F" & i) = "พนักงานผลิต 1" Then .Range("A" & i).Resize(, 11).Copy mylastrow = Sheets("Emp1").Range("A" & Rows.Count).End(xlUp).Row + 1 Sheets("Emp1").Range("A" & mylastrow).PasteSpecial xlPasteValuesAndNumberFormats, xlPasteSpecialOperationNone, , False End If Next i ' Sheets("sheet1").Range("D7").ClearContents MsgBox "บันทึกรายการเรียบร้อยแล้ว ", vbInformation + vbOKOnly, "แจ้งให้ทราบ" End If End With End Sub
Code: Select all
.Range("A" & i).Resize(, 11).Copy
.Range("A" & i).Resize(, 11).Copy คือขยายช่วงคัดลอกข้อมูลจากคอลัมน์ A ไปอีก 11 คอลัมน์ ครับXcelvba wrote: ↑Fri May 20, 2022 8:27 amได้แล้วขอบคุณครับ สอบถามเพิ่มเติมครับpuriwutpokin wrote: ↑Thu May 19, 2022 5:48 pm ปรับดูตามนี้ครับCode: Select all
Sub Click11111() Dim i As Long Dim mylastrow As Long ' Range("A9:D20").Copy With Sheets("Sheet1") If .Range("A1").Value = "" Then MsgBox "โปรดระบุข้อมูลให้ครบถ้วน", vbCritical + vbOKOnly, "แจ้งเตือน" Else For i = 3 To .Range("A" & .Rows.Count).End(xlUp).Row If .Range("F" & i) = "พนักงานผลิต 1" Then .Range("A" & i).Resize(, 11).Copy mylastrow = Sheets("Emp1").Range("A" & Rows.Count).End(xlUp).Row + 1 Sheets("Emp1").Range("A" & mylastrow).PasteSpecial xlPasteValuesAndNumberFormats, xlPasteSpecialOperationNone, , False End If Next i ' Sheets("sheet1").Range("D7").ClearContents MsgBox "บันทึกรายการเรียบร้อยแล้ว ", vbInformation + vbOKOnly, "แจ้งให้ทราบ" End If End With End Sub
Resize(,11) resize คืออะไรครับCode: Select all
.Range("A" & i).Resize(, 11).Copy
ขอบคุณครับpuriwutpokin wrote: ↑Fri May 20, 2022 9:00 am.Range("A" & i).Resize(, 11).Copy คือขยายช่วงคัดลอกข้อมูลจากคอลัมน์ A ไปอีก 11 คอลัมน์ ครับXcelvba wrote: ↑Fri May 20, 2022 8:27 amได้แล้วขอบคุณครับ สอบถามเพิ่มเติมครับpuriwutpokin wrote: ↑Thu May 19, 2022 5:48 pm ปรับดูตามนี้ครับCode: Select all
Sub Click11111() Dim i As Long Dim mylastrow As Long ' Range("A9:D20").Copy With Sheets("Sheet1") If .Range("A1").Value = "" Then MsgBox "โปรดระบุข้อมูลให้ครบถ้วน", vbCritical + vbOKOnly, "แจ้งเตือน" Else For i = 3 To .Range("A" & .Rows.Count).End(xlUp).Row If .Range("F" & i) = "พนักงานผลิต 1" Then .Range("A" & i).Resize(, 11).Copy mylastrow = Sheets("Emp1").Range("A" & Rows.Count).End(xlUp).Row + 1 Sheets("Emp1").Range("A" & mylastrow).PasteSpecial xlPasteValuesAndNumberFormats, xlPasteSpecialOperationNone, , False End If Next i ' Sheets("sheet1").Range("D7").ClearContents MsgBox "บันทึกรายการเรียบร้อยแล้ว ", vbInformation + vbOKOnly, "แจ้งให้ทราบ" End If End With End Sub
Resize(,11) resize คืออะไรครับCode: Select all
.Range("A" & i).Resize(, 11).Copy