vba 利用数据透视表 按指定列拆分工作表
时间: 2023-07-30 18:11:46 浏览: 158
您可以按照以下步骤使用 VBA 利用数据透视表按指定列拆分工作表:
1. 创建一个名为“PivotTable”的数据透视表,将需要拆分的列放到行区域中,需要保留的列放到值区域中。
2. 在 VBA 编辑器中,打开需要拆分的工作表的代码模块。
3. 在模块中添加以下代码:
```
Sub SplitPivotTable()
Dim pt As PivotTable
Dim ws As Worksheet
Dim rng As Range
Dim cell As Range
Dim lr As Long
Dim i As Long
Set pt = Worksheets("PivotTable").PivotTables("PivotTable")
Set ws = Worksheets.Add
lr = pt.TableRange1.Rows.Count
For Each cell In pt.TableRange1.Columns(1).Cells
Set rng = ws.Range("A" & lr + 1)
cell.Resize(, pt.TableRange1.Columns.Count).Copy rng
lr = lr + 1
Next cell
For i = 2 To ws.Columns.Count
If ws.Cells(1, i).Value <> "" Then
ws.Columns(i).Delete
i = i - 1
End If
Next i
ws.Name = "NewSheet"
End Sub
```
4. 修改代码中的“PivotTable”为您的数据透视表名称。
5. 运行代码,新建一个工作表,按照透视表第一列的值拆分并复制到新工作表中。
注意事项:
1. 此代码仅适用于数据透视表中只有一个数据字段。
2. 如果需要拆分的列中存在空值,则会在新工作表中创建空行。
3. 如果需要保留的列中存在空值,则会在新工作表中创建空列。
阅读全文