0

MicrosoftExcelとVBAを使用しています。前のセルで行われた選択と後続の4つの選択からの選択に依存するドロップダウン検証リストが必要です。ドロップダウンは名前付き範囲に基づいていますが、これらの範囲はピボットテーブルによって生成されます。ピボットテーブルの内容が変更される可能性があるため、名前付き範囲は一致しなくなります。

ピボットテーブルの範囲の名前を自動的に定義する方法はありますか?

障害報告システムについては、考えられる障害モードと原因のデータベースがあります。報告された障害ごとに、対応する障害モードと原因を選択する必要があります。データベースには何百もの考えられる障害モードと原因が含まれているため、選択したシステムに属するそれらの障害モードと原因のみを表示すると便利です。

サンプルファイルを表示すると、簡単だと思います。www.maasgeesteranus.nl/files/ExampleExcel入力SDMコードとfailmodes.xlsm

ピボットテーブルには、手動で入力される名前付き範囲が含まれていますが、これはマクロルーチンによるか、選択ワークシートの列の検証定義でこれらのピボットテーブル範囲を呼び出すことができる必要があります。

4

1 に答える 1

1

現在のドロップダウンボックスが にあり、という名前の範囲でSheet(1)入力されていると仮定すると、現在、最大 までのアイテムしかないため、5 アイテム、"A2:A10"rangeA"A6"

Dim LastRow as Long
Dim StartRow as Long

'--assume that your named range first row has no titles
StartRow = Sheets(1).Range("rangeA").Row '-- 2
LastRow = Sheets(1).Cells(Sheets(1).Rows.Count, _ 
          Sheets(1).Range("rangeA").Column).End(xlUp).Row '-- 6

If StartRow <> 1 then
StartRow = StartRow - 1
Lastrow = LastRow - StartRow
End if

ComboBox1.List = Sheets(1).Range("rangeA").Resize(LastRow).Value
于 2013-01-21T03:30:01.473 に答える