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 MergeColumnsInAB()
Dim wsAB As Worksheet
Dim wsAA As Worksheet
Dim lastColumnAA As Long
Dim colStart As Long
Dim colEnd As Long
Dim i As Long
Set wsAB = ThisWorkbook.Sheets("AB")
Set wsAA = ThisWorkbook.Sheets("AA")
lastColumnAA = wsAA.Cells(1, wsAA.Columns.Count).End(xlToLeft).Column
colStart = 2
colEnd = 5
For i = colStart To lastColumnAA Step 4
If colEnd > wsAB.Columns.Count Then colEnd = wsAB.Columns.Count
With wsAB.Range(wsAB.Cells(2, colStart), wsAB.Cells(2, colEnd))
.Merge
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
colStart = colStart + 4
colEnd = colEnd + 4
Next i
End Sub
Code: Select all
Sub MergeColumnsInAB()
Dim wsAB As Worksheet
Dim wsAA As Worksheet
Dim lastColumnAA As Long
Dim colStart As Long
Dim colEnd As Long
Dim i As Long
Set wsAB = ThisWorkbook.Sheets("AB")
Set wsAA = ThisWorkbook.Sheets("AA")
lastColumnAA = wsAA.Cells(1, wsAA.Columns.Count).End(xlToLeft).Column - 1
colStart = 2
colEnd = 5
For i = colStart To lastColumnAA * 4 Step 4
If colEnd > wsAB.Columns.Count Then colEnd = wsAB.Columns.Count
With wsAB.Range(wsAB.Cells(2, colStart), wsAB.Cells(2, colEnd))
.Merge
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
colStart = colStart + 4
colEnd = colEnd + 4
Next i
End Sub
ขอบพระคุณมากครับ ใช้งานได้อย่างที่ต้องการครับpuriwutpokin wrote: Wed Aug 21, 2024 11:08 pm ปรับตามนี้ครับCode: Select all
Sub MergeColumnsInAB() Dim wsAB As Worksheet Dim wsAA As Worksheet Dim lastColumnAA As Long Dim colStart As Long Dim colEnd As Long Dim i As Long Set wsAB = ThisWorkbook.Sheets("AB") Set wsAA = ThisWorkbook.Sheets("AA") lastColumnAA = wsAA.Cells(1, wsAA.Columns.Count).End(xlToLeft).Column - 1 colStart = 2 colEnd = 5 For i = colStart To lastColumnAA * 4 Step 4 If colEnd > wsAB.Columns.Count Then colEnd = wsAB.Columns.Count With wsAB.Range(wsAB.Cells(2, colStart), wsAB.Cells(2, colEnd)) .Merge .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter End With colStart = colStart + 4 colEnd = colEnd + 4 Next i End Sub