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 CopyDataToDetailSheet()
Dim ws As Worksheet
Dim detailSheet As Worksheet
Dim lastCol As Long
Dim copyRange As Range
Set detailSheet = ThisWorkbook.Sheets("detail")
lastCol = 2
For Each ws In ThisWorkbook.Sheets
If ws.Name <> "data" And ws.Name <> "OP" And ws.Name <> "detail" Then
Set copyRange = ws.Range("A7:D30")
copyRange.Copy Destination:=detailSheet.Cells(3, lastCol)
lastCol = lastCol + copyRange.Columns.Count
End If
Next ws
MsgBox "การคัดลอกข้อมูลเสร็จสมบูรณ์"
End Sub
Code: Select all
Sub CopyDataToDetailSheet()
Dim ws As Worksheet
Dim detailSheet As Worksheet
Dim lastCol As Long
Dim copyRange As Range
On Error Resume Next
Set detailSheet = ThisWorkbook.Sheets("detail")
lastCol = 2
For Each ws In ThisWorkbook.Sheets
If ws.Name <> "data" And ws.Name <> "OP" And ws.Name <> "detail" Then
Set copyRange = ws.Range("A7:D30")
lastCol = Application.Match(ws.Range("A5"), detailSheet.Range("b1:bu1"), 0)
copyRange.Copy Destination:=detailSheet.Cells(3, lastCol + 1)
lastCol = lastCol * 4
End If
Next ws
MsgBox "การคัดลอกข้อมูลเสร็จสมบูรณ์"
End Sub
ขอบพระคุณครับ ใช้งานได้อย่างที่ต้องการครับpuriwutpokin wrote: Thu Aug 22, 2024 9:25 pm ปรับตามนี้ดูครับCode: Select all
Sub CopyDataToDetailSheet() Dim ws As Worksheet Dim detailSheet As Worksheet Dim lastCol As Long Dim copyRange As Range On Error Resume Next Set detailSheet = ThisWorkbook.Sheets("detail") lastCol = 2 For Each ws In ThisWorkbook.Sheets If ws.Name <> "data" And ws.Name <> "OP" And ws.Name <> "detail" Then Set copyRange = ws.Range("A7:D30") lastCol = Application.Match(ws.Range("A5"), detailSheet.Range("b1:bu1"), 0) copyRange.Copy Destination:=detailSheet.Cells(3, lastCol + 1) lastCol = lastCol * 4 End If Next ws MsgBox "การคัดลอกข้อมูลเสร็จสมบูรณ์" End Sub