我有一个包含许多不同行和列的表的文件(见下图)。
然后我将其复制到excel以使用VBA创建数据透视表。但是,由于我使用VBA Record,因此代码包含一个不适用于不同表的特定地址。我正在尝试使用以下方法将表格更改为全局坐标文件:
Dim sSheetName As String
Dim sDataRange As String
sSheetName = ActiveSheet.Name
sDataRange = Selection.Address
但它没有成功。 这是我目前的1个表的代码:
Range("A2015:A2040").Select
Selection.TextToColumns Destination:=Range("A2015"), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 1), Array(6, 1), Array(15, 1), Array(39, 1), Array(53, 1), _
Array(60, 1), Array(73, 1), Array(94, 1), Array(108, 1)), TrailingMinusNumbers:=True
Worksheets("Sheet1").Range("A2015:P2040").Columns.AutoFit
Range("A2015:A2018").Select
Application.Run "PERSONAL.XLSB!MergingCells"
Range("B2015:B2018").Select
Application.Run "PERSONAL.XLSB!MergingCells"
Range("C2015:C2018").Select
Application.Run "PERSONAL.XLSB!MergingCells"
Range("D2015:D2018").Select
Application.Run "PERSONAL.XLSB!MergingCells"
Range("E2015:E2018").Select
Application.Run "PERSONAL.XLSB!MergingCells"
Range("F2015:F2018").Select
Application.Run "PERSONAL.XLSB!MergingCells"
Range("G2015:G2018").Select
Application.Run "PERSONAL.XLSB!MergingCells"
Range("H2015:H2018").Select
Application.Run "PERSONAL.XLSB!MergingCells"
Range("I2015:I2018").Select
Application.Run "PERSONAL.XLSB!MergingCells"
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$2015:$I$2040"), , xlYes).Name _
= "Table15"
如您所见,它有3个部分,固定宽度(文本到列),组合标题和创建表。 输入和输出的示例如下: