Я новичок в макросах. Я хочу сделать сводную таблицу данных. Я не могу использовать макросы VBA внутри Excel, вместо этого я могу использовать внешне как запись в VBscript и выполнять как файл ".VBS". Хотя мне удалось создать объекты Excel и поместить данные, но я сталкиваюсь с трудностями при создании сводной таблицы. Мне известно, что VBA и vbscript похожи, поэтому я попытался использовать VBA, как показано ниже:
Сначала я попытался создать объекты Excel, используя Vbscript:
Set obj = createobject("Excel.Application")
obj.visible = True
Set obj1 = obj.Workbooks.Add
obj.Cells(1,1).Value = "NM"
obj.Cells(1,2).Value = "VL"
obj.Cells(2,1).Value = "A"
obj.Cells(2,2).Value = 1
obj.Cells(3,1).Value = "B"
obj.Cells(3,2).Value = 2
obj.Cells(4,1).Value = "C"
obj.Cells(4,2).Value = 3
obj.Cells(5,1).Value = "D"
obj.Cells(5,2).Value = 4
Затем я попытался использовать макросы VBA (bulit-in excel macro) для поворота таблицы в самом файле Excel.
Sub Macro1()
'
' Macro1 Macro
'
'
Sheets.Add
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Sheet1!R1C1:R5C2", Version:=6).CreatePivotTable TableDestination:= _
"Sheet2!R3C1", TableName:="PivotTable1", DefaultVersion:=6
Sheets("Sheet2").Select
Cells(3, 1).Select
With ActiveSheet.PivotTables("PivotTable1").PivotFields("VL")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("PivotTable1").PivotFields("NM")
.Orientation = xlPageField
.Position = 1
End With
ActiveSheet.PivotTables("PivotTable1").PivotFields("NM").CurrentPage = "(All)"
With ActiveSheet.PivotTables("PivotTable1").PivotFields("NM")
.PivotItems("A").Visible = False
.PivotItems("C").Visible = False
End With
ActiveSheet.PivotTables("PivotTable1").PivotFields("NM"). _
EnableMultiplePageItems = True
Application.Goto Reference:="Macro1"
End Sub
Сейчас я пытаюсь сделать то же самое с помощью VBScript, но не получаю его.
Я попытался использовать то же самое и сделал изменения, такие как добавление имени объекта Excel
до методов, но все еще не работает.
Set obj = createobject("Excel.Application")
obj.visible = True
Set obj1 = obj.Workbooks.Add
obj.Cells(1,1).Value = "NM"
obj.Cells(1,2).Value = "VL"
obj.Cells(2,1).Value = "A"
obj.Cells(2,2).Value = 1
obj.Cells(3,1).Value = "B"
obj.Cells(3,2).Value = 2
obj.Cells(4,1).Value = "C"
obj.Cells(4,2).Value = 3
obj.Cells(5,1).Value = "D"
obj.Cells(5,2).Value = 4
'Tried making changes:
'Adding Excel object
Obj.ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Sheet1!R1C1:R5C2", Version:=6).CreatePivotTable TableDestination:= _
"Sheet2!R3C1", TableName:="PivotTable1", DefaultVersion:=6
'Even Adding Excel workbook object
Obj1.ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Sheet1!R1C1:R5C2", Version:=6).CreatePivotTable TableDestination:= _
"Sheet2!R3C1", TableName:="PivotTable1", DefaultVersion:=6
Это показывает ошибку отсутствия скобки, поэтому я даже попытался поместить ее в одну строку.
obj.ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:="R1C1:R6C2", Version:=6).CreatePivotTable TableDestination:= _"Sheet1!R3C1", TableName:="PivotTable1", DefaultVersion:=6
Но все равно отображается та же ошибка, что и " Ошибка: ожидается") ' "( в той же строке ). Тем не менее, это правильный синтаксис для макросов VBA, но во время выполнения vbscript он выдает ошибку. есть ли какие-либо синтаксические различия или изменения, которые необходимо сделать.
Может кто-нибудь помочь мне или предложить мне, как это сделать или сделать это.