我试图创建一个列表,它检查所需名称的数据库,然后将该项目添加到下拉列表中。我到目前为止的代码的工作原理与它检查名称一样,然后覆盖列表中的任何以前的条目。我该如何修改,以便每次找到正确的数据时都添加一个新的列表项?正在更新下拉列表循环
While ThisWorkbook.Worksheets("Inventory Database").Range("A" & j).Value <> ""
If ThisWorkbook.Worksheets("Inventory Database").Range("A" & j) = ThisWorkbook.Worksheets("Equipment Availability").Cells(1, i) Then
dvList = ThisWorkbook.Worksheets("Inventory Database").Range("B" & j)
'~~> Creates the list
With Sheets("Equipment Availability").Cells(2, 2).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=dvList
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End If
j = j + 1
Wend
我不能完全说出你的配对。是当一个特定的单元格发生变化或者某个东西被添加到列表中时?无论哪种方式,您都可以使用换页或目标更改事件。 – Trum
这在激活表单时运行。问题是我只获得系列中的最后一个项目,而不是整个系列,因为每次运行循环时,它都会销毁最后一个列表并使用单个项目创建一个新列表。例如列表应该是“选项1”,“选项2”,“选项3”,但它只给出“选项3” –
您是否可以不在循环外执行单独的删除语句,并删除该语句?目前,您在每次添加之前清除列表。 – Trum