Drop down menu 基于msexcel数据透视表的visualbasic下拉列表

Drop down menu 基于msexcel数据透视表的visualbasic下拉列表,drop-down-menu,excel,range,pivot,vba,Drop Down Menu,Excel,Range,Pivot,Vba,我正在使用Microsoft Excel和VBA。 我需要一个下拉验证列表,该列表取决于前一个单元格中所做的选择以及随后4个选择中的选择。下拉列表基于命名范围,但这些范围是由透视表生成的。由于数据透视表的内容可能会更改,因此命名范围不再匹配 有没有办法自动定义透视表中范围的命名 对于故障报告系统,我有一个可能的故障模式和原因数据库。对于每个报告的故障,需要选择相应的故障模式和原因。 数据库将包含数百种可能的故障模式和原因,因此仅显示属于所选系统的那些故障模式和原因是有帮助的 我想当我展示示例文件

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

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


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

我想当我展示示例文件时会更容易: www.maasgeesteranus.nl/files/Example Excel input SDM codes and failmodes.xlsm


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

假设当前下拉框位于
工作表(1)中
并且它由
“A2:A10”
范围填充,该范围被命名为
范围A
,目前您只有
“A6”
,因此有5个项目

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
Dim LastRow尽可能长
黯淡的星空如长
“--假定命名区域的第一行没有标题
StartRow=图纸(1).范围(“范围A”).行'--2
LastRow=工作表(1).单元格(工作表(1).行数,\u
表(1).范围(“范围A”).列).结束(xlUp).行'--6
如果StartRow 1那么
StartRow=StartRow-1
Lastrow=Lastrow-StartRow
如果结束
ComboBox1.List=Sheets(1).Range(“rangeA”).Resize(LastRow).Value

!!!哪种编程语言?该应用程序在Excel和VBANone中,无需指定使用的编程语言即可回答问题!当您说数据透视表的内容可能会更改时,命名的范围不再匹配。您是指列大小吗?就像行号不再匹配一样?e、 g.以前从pivot到name范围有10项,现在只有5项?对于故障报告系统,我有一个可能的故障模式和原因数据库。对于每个报告的故障,需要选择相应的故障模式和原因。数据库将包含数百种可能的故障模式和原因,因此仅显示属于所选系统的那些故障模式和原因是有帮助的。