【发布时间】:2021-07-31 10:13:55
【问题描述】:
在第一张纸上,我有一个名为“Inventory”的表格,它有两列。第一列包含所有条形码,第二列包含项目的描述。
例子:
| Barcode | Description |
|---|---|
| 1111 | Item 1 |
| 2222 | Item 2 |
| 3333 | Item 3 |
| 4444 | Item 4 |
| 2222 | Item 222 |
在第二张表上,我有一个名为“Out”的表格,您可以在第一列的单元格中输入条形码,第二列中的相邻单元格根据在公式查找。
此时,我没有遇到任何问题,一切正常。
但有些条形码有多个不同的描述(如条形码“2222”的示例所示),我希望能够使用仅显示不同项目的下拉列表更改项目的描述具有相同的条形码。
例如,如果我输入条形码“2222”,则相邻单元格将显示“项目 2”。我想在描述单元格上安装一个下拉列表,其中将显示项目 2 和项目 222,然后选择我想要的。
你能帮我解决这个问题吗?
Sub Data_Val()
dim Inventory_Sheet, Out_Sheet as Worksheet
set Inventory_sheet = Thisworkbook.worksheets("Inventory")
set Out_Sheet = thisworkbook.worksheets("Out")
Out_Sheet.activate
Range("B2").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, _
Formula1:="='Inventory'!$B$2:$B$6"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub
【问题讨论】:
-
现在,当您说“一张桌子”时,您指的是真正的
Table(ListObject) 吗?第二张也一样。 -
是的,我将表称为 ListObject 而我唯一尝试过的是 With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1 :="='Inventory_Table'!$B$2:$F$6" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With 而且无论输入的条形码如何,此代码都会显示所有描述。
-
请编辑您的问题并将代码放在那里!这样的代码在评论中无法理解。我将使用事件准备一段代码,以便在库存表中发生更改时自动创建必要的验证。请将保持表格的工作表命名为“Inventory”,相同(“Inventory”)...
标签: vba drop-down-menu