0

我正在使用 Microsoft Excel 和 VBA。我需要一个下拉验证列表,该列表取决于在前一个单元格中所做的选择以及来自 4 个后续选择的选择。下拉列表基于命名范围,但这些范围是由数据透视表生成的。由于数据透视表的内容可能会发生变化,因此命名范围不再匹配。

有没有办法自动定义数据透视表中范围的命名?

对于故障报告系统,我有一个可能的故障模式和原因的数据库。对于每个报告的故障,需要选择相应的故障模式和原因。该数据库将包含数百种可能的故障模式和原因,因此仅显示属于所选系统的那些故障模式和原因会很有帮助。

我想当我显示示例文件时会更容易:www.maasgeesteranus.nl/files/Example Excel 输入 SDM 代码和 failmodes.xlsm

数据透视表包含手动输入的命名范围,但这应该是通过宏例程,或者应该可以在选择工作表中列的验证定义中调用这些数据透视表范围。

4

1 回答 1

1

假设您当前的下拉框在其中,并且它由名为Sheet(1)的范围填充,并且当前您只有项目 upto ,所以 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 回答