尝试使用以下代码创建枢轴,但出现错误。
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$EX$45741"), , xlYes).Name _
= "Table1"
Range("Table1[[#Headers],[Rec Coverage Area]]").Select
PivotSheetName = "Pivot Cash " + Format(Date, "MM DD YYYY")
Sheets.Add.Name = PivotSheetName
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Table1", Version:=xlPivotTableVersion14).CreatePivotTable TableDestination _
:=PivotSheetName & "!R3C1", TableName:="PivotTable20", DefaultVersion:= _
xlPivotTableVersion14
该错误与代码有关:
TableDestination _ :=PivotSheetName & "!R3C1",
此外,我在第一行中创建表的等待仅针对特定范围创建:Range("$A$1:$EX$45741")
但是 tabke 可以是动态的,可以有更多的列/行。我如何获得将根据行/列创建范围的代码。(A 列单元格将具有一些值,因此我们可以获得 A 列的最后一行,第 1 行将具有一些值,因此我们可以获得第 1 行的最后一列。)
关于精确的范围定义(如您所说,指的是第 1 列和第 1 列):
Sub RangeDefinition()
Dim sh As Worksheet, lastRow As Long, lastCol As Long, rng As Range
Set sh = ActiveSheet 'use here your needed sheet
lastRow = sh.Range("A" & Rows.count).End(xlUp).Row
lastCol = sh.Cells(1, Columns.count).End(xlToLeft).Column
Set rng = sh.Range(sh.Range("A1"), sh.Cells(lastRow, lastCol))
Debug.Print rng.Address 'in order to check if it returns what you need...
End Sub
请尝试完全定义您的变量。ActiveSheet
如果您的活动工作表错误地不同,则可能会带来问题。在我的代码中,我ActiveSheet
仅用于测试目的,建议使用您的(真实)工作表名称。
UsedRange
如果工作表刚刚创建并且您没有在现有数据下进行任何格式修改,则可以工作......通过这种方式,可以计算范围边距。
对于另一个问题,首先尝试: TableDestination:=PivotSheetName & "!R3C1",
代替 TableDestination _
`:=PivotSheetName & "!R3C1",`
至少,删除中间的空行。这种方式仅适用于连续行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句