使用VBA在Excel上创建表

时间:2016-09-29 15:15:27

标签: excel excel-vba vba

我有一个包含许多不同行和列的表的文件(见下图)。

然后我将其复制到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个部分,固定宽度(文本到列),组合标题和创建表。 输入和输出的示例如下:

input output

0 个答案:

没有答案