根据更改的 Combobox 值设置单元格 vlookup 值
Set cell vlookup value based on changing Combobox value
我在 Excel sheet 中输入了 combobox
。我希望它能够工作,以便无法访问 VBA
的用户可以 select 来自 dropdown
的值,然后另一个单元格中的值将执行 vlookup
关于这个值。
首先,我插入了一个框,并试图以此为基础设置单元格值。
Sub InsertComboBox()
#inserts dropdown box on the front page and sets the values as the list of DMA from the pipe_totals sheet
#this should be the most complete list so will not change dependant on asset
Dim arearange As Range
Set arearange = Sheets("pipe_totals").Range("a:a")
lastrowi = Application.WorksheetFunction.CountA(arearange)
Sheets("front page").Activate
With Range("f5:g5")
Set Combo = ActiveSheet.DropDowns.Add(.Left, .Top, .Width, .Height)
End With
Combo.List() = Sheets("pipe_totals").Range("A2:A" & lastrowi).Value
.Range("k9").Value = Combo.Value 'only works on current combobox value which is 0
End Sub
有什么方法可以设置这个 vlookup
是动态的,具体取决于用户 selection?
据我了解,您希望每次组合框值更改时,单元格 K9 也将具有相同的值。那正确吗?如果是这种情况,则右键单击组合框和 select "Assign Macro"。然后select"Create"。然后在创建的子内部,它应该是这样的:
Sub "comboname"_Change()
End Sub
您还应该粘贴最后一行代码。
.Range("k9").Value = Combo.Value
这样做意味着您希望每次组合框值更改时都执行该行代码。
在本例中,只需设置正确的组合名称即可。应该没问题,前提是您的组合框列出了来自 "Range("A2:A" & lastrowi)" 的值,正如您上面提到的那样。
Sub "comboname"_Change()
Dim list_val As Long
list_val = Worksheets("front page").Shapes("comboname").ControlFormat.Value
Range("K9") = Worksheets("pipe_totals").Cells((list_val + 1), 1)
End Sub
Sub test()
Dim z As Shape
For Each z In Worksheets("front page").Shapes
Debug.Print z.Name
Next z
End Sub
我在 Excel sheet 中输入了 combobox
。我希望它能够工作,以便无法访问 VBA
的用户可以 select 来自 dropdown
的值,然后另一个单元格中的值将执行 vlookup
关于这个值。
首先,我插入了一个框,并试图以此为基础设置单元格值。
Sub InsertComboBox()
#inserts dropdown box on the front page and sets the values as the list of DMA from the pipe_totals sheet
#this should be the most complete list so will not change dependant on asset
Dim arearange As Range
Set arearange = Sheets("pipe_totals").Range("a:a")
lastrowi = Application.WorksheetFunction.CountA(arearange)
Sheets("front page").Activate
With Range("f5:g5")
Set Combo = ActiveSheet.DropDowns.Add(.Left, .Top, .Width, .Height)
End With
Combo.List() = Sheets("pipe_totals").Range("A2:A" & lastrowi).Value
.Range("k9").Value = Combo.Value 'only works on current combobox value which is 0
End Sub
有什么方法可以设置这个 vlookup
是动态的,具体取决于用户 selection?
据我了解,您希望每次组合框值更改时,单元格 K9 也将具有相同的值。那正确吗?如果是这种情况,则右键单击组合框和 select "Assign Macro"。然后select"Create"。然后在创建的子内部,它应该是这样的:
Sub "comboname"_Change()
End Sub
您还应该粘贴最后一行代码。
.Range("k9").Value = Combo.Value
这样做意味着您希望每次组合框值更改时都执行该行代码。
在本例中,只需设置正确的组合名称即可。应该没问题,前提是您的组合框列出了来自 "Range("A2:A" & lastrowi)" 的值,正如您上面提到的那样。
Sub "comboname"_Change()
Dim list_val As Long
list_val = Worksheets("front page").Shapes("comboname").ControlFormat.Value
Range("K9") = Worksheets("pipe_totals").Cells((list_val + 1), 1)
End Sub
Sub test()
Dim z As Shape
For Each z In Worksheets("front page").Shapes
Debug.Print z.Name
Next z
End Sub