怎么使用C#调用vba实现excel中数据生成数据透视表
已有vba代码如下:
Sub Macro1()
'
' Macro1 Macro
' 宏由 Liu 录制,时间: 2018/3/2
'
' 快捷键: Ctrl+x
'
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"Sheet1!R1C1:R45277C8").CreatePivotTable TableDestination:="", TableName:= _
"数据透视表1", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
ActiveSheet.PivotTables("数据透视表1").PivotFields("货号").Subtotals = Array(False, _
False, False, False, False, False, False, False, False, False, False, False)
ActiveSheet.PivotTables("数据透视表1").AddFields RowFields:=Array("品名", "地址", "发货人", _
"货号", "收货人")
ActiveSheet.PivotTables("数据透视表1").PivotFields("数量").Orientation = xlDataField
ActiveWorkbook.ShowPivotTableFieldList = False
Application.CommandBars("PivotTable").Visible = False
End Sub使用的数据如下表所示
使用的C#程序是 https://download.csdn.net/download/lzy526124/1883065所提供的
但使用该程序之后 原有的表格打开后都变成了只读文件 且不能进行批处理操作 对源文件没有生成新的sheel 并生成数据透视表 请各大神帮助
已有vba代码如下:
Sub Macro1()
'
' Macro1 Macro
' 宏由 Liu 录制,时间: 2018/3/2
'
' 快捷键: Ctrl+x
'
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"Sheet1!R1C1:R45277C8").CreatePivotTable TableDestination:="", TableName:= _
"数据透视表1", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
ActiveSheet.PivotTables("数据透视表1").PivotFields("货号").Subtotals = Array(False, _
False, False, False, False, False, False, False, False, False, False, False)
ActiveSheet.PivotTables("数据透视表1").AddFields RowFields:=Array("品名", "地址", "发货人", _
"货号", "收货人")
ActiveSheet.PivotTables("数据透视表1").PivotFields("数量").Orientation = xlDataField
ActiveWorkbook.ShowPivotTableFieldList = False
Application.CommandBars("PivotTable").Visible = False
End Sub使用的数据如下表所示
使用的C#程序是 https://download.csdn.net/download/lzy526124/1883065所提供的
但使用该程序之后 原有的表格打开后都变成了只读文件 且不能进行批处理操作 对源文件没有生成新的sheel 并生成数据透视表 请各大神帮助
宏代码添在在Excel.Application打开工作簿以后。
把ActiveWorkbook替换成Workbook对象,把ActiveSheet替换换成Workbook.Sheets[n]赋给WorkSheet对象就可以了。