私は最近この問題に遭遇し、以下を構築しました。もちろん、機能させるには、原則として 2 つのテーブルが 1 つのシートに収まるという前提条件を満たす必要があります。私が行うことは、2 つのテーブル間に十分なスペース (= 行) を構築し、更新後にテーブル間に残っている行を非表示にすることです。したがって、VBA が必要であり、たとえば PivotTable_Update イベントで実行できます。
Private Sub hideRowsBetweenListObjects(sheetName As String)
Dim tblRowPosition1 As Integer
Dim tblNrOfRows1 As Integer
Dim tblRowPosition2 As Integer
Dim tblNrOfRows2 As Integer
'Initialize
Application.ScreenUpdating = False
With Worksheets(sheetName).ListObjects(1)
tblRowPosition1 = .Range.Row
tblNrOfRows1 = .Range.Rows.Count
End With
With Worksheets(sheetName).ListObjects(2)
tblRowPosition2 = .Range.Row
tblNrOfRows2 = .Range.Rows.Count
End With
With Worksheets(sheetName)
If tblRowPosition1 < tblRowPosition2 Then
.Range(.Cells(tblRowPosition1 + tblNrOfRows1, 1), .Cells(tblRowPosition2 - 4, 1)).EntireRow.Hidden = True
ElseIf tblRowPosition2 < tblRowPosition1 Then
.Range(.Cells(tblRowPosition2 + tblNrOfRows2, 1), .Cells(tblRowPosition1 - 4, 1)).EntireRow.Hidden = True
End If
End With
サブ終了