ต้องการให้ข้อมูลจัดกลุ่มโดยใช้ VBA
Posted: Mon Mar 14, 2011 8:46 am
รบกวนคุณคนควน ช่วยทำต่อให้ทีนะครับ เพราะผมเขียน VBA แล้ว แต่มันยังได้ช่องไม่ตรงทั้งหมดเลยขอความกรุณาช่วยผมด้วยครับ
ขอบคุณครับ
ขอบคุณครับ
คลังคำตอบแห่งความรู้จากคนไทย เพื่อโลกที่ต้องการเข้าใจในสิ่งเล็ก ๆ อย่างลึกซึ้ง
https://snasui.com/
Code: Select all
Sub TransposePaste()
Dim Int1 As Integer, Int2 As Integer
Dim Int3 As Integer
Dim rRange1 As Range
Dim rRange2 As Range, rRange3 As Range
With ActiveSheet
.Range("E:IV").ClearContents
.Range("A:A").Copy
.Range("E:E").PasteSpecial xlPasteValues
.Range("E:E").RemoveDuplicates Columns:=1, Header:=xlNo
.Range("E1").ClearContents
Set rRange2 = .Range("E2", .Range("E65536").End(xlUp))
End With
For Each rRange1 In rRange2
Int3 = Application.WorksheetFunction. _
Match(rRange1, Range("A:A"), 0)
Int2 = Application.WorksheetFunction. _
CountIf(Range("A:A"), rRange1)
Set rRange3 = Range("A1").Offset(Int3 - 1, 1).Resize(Int2, 1)
rRange3.Copy
rRange1.Offset(0, 1).PasteSpecial Paste:=xlPasteValues, Transpose:=True
Next
Application.CutCopyMode = False
MsgBox "Fish"
End SubCode: Select all
Sub TransposePaste()
Dim Int1 As Integer, Int2 As Integer
Dim Int3 As Integer
Dim rRange1 As Range
Dim rRange2 As Range, rRange3 As Range
With ActiveSheet
.Range("E:IV").ClearContents
.Range("A:A").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _
"E1"), Unique:=True
.Range("E1").ClearContents
Set rRange2 = .Range("E2", .Range("E65536").End(xlUp))
End With
For Each rRange1 In rRange2
Int3 = Application.WorksheetFunction. _
Match(rRange1, Range("A:A"), 0)
Int2 = Application.WorksheetFunction. _
CountIf(Range("A:A"), rRange1)
Set rRange3 = Range("A1").Offset(Int3 - 1, 1).Resize(Int2, 1)
rRange3.Copy
rRange1.Offset(0, 1).PasteSpecial Paste:=xlPasteValues, Transpose:=True
Next
Application.CutCopyMode = False
MsgBox "Finish"
End Sub