,如果你正在处理在Excel UI下拉单元格,然后你可以使用此代码(见注释将其调整到您的实际需求):
Sub Main()
With Worksheets("sheetWithDropDownName").Range("A1").Validation '<--| change "sheetWithDropDownName" and "A1" to your actual "dropdown" worksheet and cell references
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=Join(GetTitles(), ",")
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub
Function GetTitles() As Variant
Dim cell As Range, rng As Range
With Worksheets("sheetWithDataName") '<--| change "sheetWithDataName" to your actual sheet with data name
Set rng = .Range("A1", .cells(.Rows.Count, "E").End(xlUp)) '<--| set a range as its columns A:E range from row 1 down to last column E not empty row
End With
With CreateObject("Scripting.Dictionary")
For Each cell In rng.Columns(5).cells
If cell.Value = "index" Then .Item(cell.Offset(, -4).Value) = cell.Offset(, -4).Value
Next cell
GetTitles = .keys
End With
End Function
你写_“的基础D列的单元格值“。_和您的伪代码实际上使用了一些_Cell D_,但它将它与链接的图像在列”E“中显示的索引进行比较。请澄清 – user3598756
对不起,我的意思是E栏 – Jeremie
然后编辑你的问题 – user3598756