私が現在いる場所については、下部の編集を参照してください。ありがとうございます。
ピボットキャッシュが次のように定義されている場合に正常に機能するピボットテーブルを作成しました。
Dim ptCache As Excel.PivotCache = mainHighway.PivotCaches.Add(SourceType:=Excel.XlPivotTableSourceType.xlDatabase, SourceData:=mainHighwayData.Range("a1:v7500"))
私の問題は、行数が日々変化することです。そのため、ワークシートの行数を計算し、それをピボットキャッシュで使用します。
Dim highlRow As Integer
highlRow = mainHighwayData.Cells.SpecialCells(XlCellType.xlCellTypeLastCell).Row
Dim ptCache As Excel.PivotCache = mainHighway.PivotCaches.Add(SourceType:=Excel.XlPivotTableSourceType.xlDatabase, SourceData:=mainHighwayData.Range("a1:V" & highlRow))
このソリューションは歴史的に私にとってはうまく機能しましたが、ここでそれを行うと、次のようになります。
Type mismatch. (Exception from HRESULT: 0x80020005 (DISP_E_TYPEMISMATCH))
私はそれをかなりいじっていて、そうすると次のことがわかりました。
highlRow = 7000
Dim ptCache As Excel.PivotCache = mainHighway.PivotCaches.Add(SourceType:=Excel.XlPivotTableSourceType.xlDatabase, SourceData:=mainHighwayData.Range("a1:V" & highlRow))
正常に動作するので、specialcellsコマンドを使用してhighlRowを定義し、それを整数として格納する方法の問題は何でしょうか。ここに何らかのタイプやキャストの問題があるように感じますが、指を置くことができません。私は試した:
highlRow = CType(mainHighwayData.Cells.SpecialCells(XlCellType.xlCellTypeLastCell).Row, Integer)
そして、それも良くありませんでした。おそらく、最後の行を見つけるための私の方法は、ここでは適用できませんか?とにかく、私はそれをいじくり回すのに長い時間を費やしました、そして私はちょうどこの時点で私の車輪を回しています。ご意見がございましたら、よろしくお願いいたします。
いつもありがとうございます。
編集:私も試しました:
UsedRange.Rows.Count
これは歴史的に機能していて、実行することもできませんでした。この時点で、ピボットキャッシュに特にこの問題があるように見える理由について非常に興味があります。
@charlesは、最後のセルを取得する他の方法を試すことをお勧めしました。私は試した:
highlRow = mainHighwayData.Range("A65535").End(XlDirection.xlUp).Row
正しい行を表示するようになりましたが、それでも型の不一致エラーがスローされます。
highlRow = mainHighwayData.Cells.Find("*", SearchOrder:=Excel.XlSearchOrder.xlByRows, SearchDirection:=XlSearchDirection.xlPrevious).Row
これにより、最後の行に適切な番号が返されますが、同じタイプの不一致エラーが再度スローされます。
編集:私は別の情報を見つけましたが、それをどうするかわかりません。ピボットテーブルの値が65536未満の場合は正常に機能しますが、2番目に範囲を65537に増やすと、タイプの不一致が発生します。これは、65537以上のすべての数値に当てはまります。65535かそこらがExcelの最後の行であったことは知っていますが、現在はそうではありません。また、Excelで手動でピボットテーブルを作成しても問題はなく、すべてのデータが含まれています。私はintまたはlongを使用しているので、オーバーフローなどであってはなりません。VB.NETで65537行を超えるデータに基づいてピボットテーブルを作成できない理由について、誰かが考えていますか?