我想重新排序来自多个表格中的所有列(在Excel中设置为表格),在同一个工作表中按下另一个列表。
这是一个例子,因此您可以更好地了解我目前拥有的内容:
表1
Col1 Col2 Col3 Col4 Col5
Data Data Data Data Data
表2
Col1 Col4 Col5 Col3 Col2
Data Data Data Data Data
表3(在此表中,我有一个我不需要的额外列)
Col3 Col1 Col2 Col5 Col4 Col6
Data Data Data Data Data Data
期望的结果
Col1 Col2 Col3 Col4 Col5
Data Data Data Data Data
Data Data Data Data Data
Data Data Data Data Data
我的第一个解决方案是在Excel中创建一个宏,但我已经堆积了代码,因为我不是专家。我们的想法是创建一个数组并为每个表排序列。
Dim tbl As ListObject
Dim WS As Worksheet
Dim arrColOrder As Variant, ndx As Integer
arrColOrder = Array("Col1", "Col2", "Col3", "Col4", "Col5")
For ndx = LBound(arrColOrder) To UBound(arrColOrder)
For Each WS In Worksheets
For Each tbl In WS.ListObjects
这是代码的开始,但我真的不知道如何为每个表定义数组。
答案 0 :(得分:1)
试试这个
Sub CopyConcatenate()
Dim ws As Worksheet
Dim rng As Range
'~~> Set this to the relevant worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
With ws
'~~> Set your range
Set rng = .Columns(x)' change x to the number column you want
'~~> Cut the range
rng.Cut
'~~> Insert the range
rng.Offset(5).Insert
End With
End Sub
要删除列,您可以使用类似
的内容Set Rng = ws.Columns(x)
Rng.Delete Shift:=xlToLeft