0

このマクロを使用して、毎日同じワークシート名でこのピボット テーブルを作成できるようにしようとしています。変更される唯一のものは、データソースの行です。行数がわからないためです。文字列全体を CurSourceData 変数に設定してから、それを使用しようとしましたが、失敗し、引数が無効であると表示されます。

どんなアイデアでも役に立ちます。

Sheets("Cases 23+ Day (Due Today)").Select
 Range("A1").Select
 Selection.End(xlDown).Select
     Selection.End(xlDown).Select
CurRow = ActiveCell.Row
CurSourceData = "Cases 23+ Day (Due today)!R1C2:R" & CurRow & "C20"
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
    CurSourceData, Version:=xlPivotTableVersion14). _
    CreatePivotTable TableDestination:="Master Summary!R3C7", TableName:= _
    "PivotTable3", DefaultVersion:=xlPivotTableVersion14
Sheets("Master Summary").Select
Cells(3, 7).Select
ActiveSheet.PivotTables("PivotTable3").AddDataField ActiveSheet.PivotTables( _
    "PivotTable3").PivotFields("Status"), "Count of Status", xlCount
With ActiveSheet.PivotTables("PivotTable3").PivotFields("Status")
    .Orientation = xlRowField
    .Position = 1
End With
4

2 に答える 2

1

の SourceData 引数PivotCaches.Createは、Range または Connection です。シート名のスペースにも問題があると思います。答えは一重引用符を使用することです。試す :

Set CurSourceData = Worksheets("Cases 23+ Day (Due today)").Range("B1", "T" & CurRow)

(私は R1C1 表記が大嫌いで、ここでの使い方がわかりませんでした。)

于 2013-03-16T20:36:11.773 に答える
0

データセットがセル A1 で始まると仮定すると、これはうまくいきました。

Dim MyRange As Range

Dim lrow As Long

Dim lcol As Long

lrow = ActiveSheet.Cells(Application.Rows.Count, 1).End(xlUp).Row

lcol = ActiveSheet.Cells(1, Application.Columns.Count).End(xlToLeft).Column

Set MyRange = ActiveSheet.Cells(1, 1).Resize(lrow, lcol)

幸運を!

于 2014-09-09T15:48:42.410 に答える