Excel 自动选择数据透视表SourceData中要避免的最后一行(空白)

Excel 自动选择数据透视表SourceData中要避免的最后一行(空白),excel,excel-2007,vba,Excel,Excel 2007,Vba,需要一点帮助,我有一个宏自动创建透视表和图表,这一切都很好,但我在透视表中得到(空白),因为我的范围一直到65536。 如何自动获取源数据中的最后一行/列,以便不获取任何空格。数据是不断变化的,所以这需要是自动的 这是源数据,我希望根据“原始”工作表的最后一列自动生成R65536C37 我试过了 LastRow = ActiveSheet.UsedRange.Rows.Count SourceData:= "raw!R1C1:" & LastRow & C37" 枢轴宏

需要一点帮助,我有一个宏自动创建透视表和图表,这一切都很好,但我在透视表中得到(空白),因为我的范围一直到65536。 如何自动获取源数据中的最后一行/列,以便不获取任何空格。数据是不断变化的,所以这需要是自动的

这是源数据,我希望根据“原始”工作表的最后一列自动生成R65536C37

我试过了

LastRow = ActiveSheet.UsedRange.Rows.Count
SourceData:= "raw!R1C1:" & LastRow & C37"
枢轴宏

    Sheets("Frontpage").Select
Range("A7").Select
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
    "raw!R1C1:R65536C37").CreatePivotTable _
    TableDestination:="Frontpage!R7C1", TableName:="PivotTable2", _
    DefaultVersion:=xlPivotTableVersion10
Sheets("Frontpage").Select
Cells(7, 1).Select
ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=Range("Frontpage!$A$7:$H$22")
ActiveChart.ChartType = xlColumnClustered
With ActiveSheet.PivotTables("PivotTable2").PivotFields("Priority")
    .Orientation = xlRowField
    .Position = 1
End With
ActiveSheet.PivotTables("PivotTable2").AddDataField ActiveSheet.PivotTables( _
    "PivotTable2").PivotFields("Case ID"), "Count of Case ID", xlCount
ActiveChart.Parent.Name = "IncidentsbyPriority"
ActiveChart.ChartTitle.Text = "Incidents by Priority"
Dim RngToCover As Range
Dim ChtOb As ChartObject
Set RngToCover = ActiveSheet.Range("D7:L16")
Set ChtOb = ActiveSheet.ChartObjects("IncidentsbyPriority")
ChtOb.Height = RngToCover.Height ' resize
ChtOb.Width = RngToCover.Width ' resize
ChtOb.Top = RngToCover.Top ' reposition
ChtOb.Left = RngToCover.Left ' reposition

任何帮助都将不胜感激。我需要在其他四个数据透视中重复此操作,以避免在表格和图表中出现(空白)。

我通常使用命名的动态范围。 例如,使用公式创建名为RawData的命名范围:
=偏移量(原始!$A$1,0,0,COUNTA(原始!$A:$A),COUNTA(原始!$1:$1))

这假设在第1列或第1行中的数据中没有空格(数据末尾以外的空格/空不是问题)

如果数据中有空格,则需要使用另一个函数:可以从
下载一组用于此类计数的函数(fxlCountFuncs.zip)

找到了一个解决方案。。我只是运行了一个宏,从每个透视表中筛选出(空白)
    Sheets("Frontpage").Select
Range("A7").Select
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
    "raw!R1C1:R65536C37").CreatePivotTable _
    TableDestination:="Frontpage!R7C1", TableName:="PivotTable2", _
    DefaultVersion:=xlPivotTableVersion10
Sheets("Frontpage").Select
Cells(7, 1).Select
ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=Range("Frontpage!$A$7:$H$22")
ActiveChart.ChartType = xlColumnClustered
With ActiveSheet.PivotTables("PivotTable2").PivotFields("Priority")
    .Orientation = xlRowField
    .Position = 1
End With
ActiveSheet.PivotTables("PivotTable2").AddDataField ActiveSheet.PivotTables( _
    "PivotTable2").PivotFields("Case ID"), "Count of Case ID", xlCount
ActiveChart.Parent.Name = "IncidentsbyPriority"
ActiveChart.ChartTitle.Text = "Incidents by Priority"
Dim RngToCover As Range
Dim ChtOb As ChartObject
Set RngToCover = ActiveSheet.Range("D7:L16")
Set ChtOb = ActiveSheet.ChartObjects("IncidentsbyPriority")
ChtOb.Height = RngToCover.Height ' resize
ChtOb.Width = RngToCover.Width ' resize
ChtOb.Top = RngToCover.Top ' reposition
ChtOb.Left = RngToCover.Left ' reposition