我是Excel VBA
的新手,并试图将其用于Excel
工作簿中的场景。我正在尝试在单元格中进行多值搜索,这应该突出显示。假设我有这些ID-1001、1002,因此在特定单元格中应突出显示或搜索这些值。我不确定如何在List<>
中使用VBA
,但是在C#
中,我可以执行以下操作:
List<string> aLst = new List<string>();
aLst.Add("1001");
aLst.Add("1002");
因此,有了列表,我可以迭代id并获得匹配的结果。我正在研究以下VBA
代码,它获取一个值作为参数。然后检查匹配的一个:
Function SingleCellExtract(Lookupvalue As String, LookupRange As Range, ColumnNumber As Integer)
Dim i As Long
Dim Result As String
For i = 1 To LookupRange.Columns(1).Cells.Count
If LookupRange.Cells(i, 1) = Lookupvalue Then
Result = Result & " " & LookupRange.Cells(i, ColumnNumber) & ","
End If
Next i
SingleCellExtract = Left(Result, Len(Result) – 1)
End Function
这是我关注的链接:Excel VBA
因此,我可以使用List<>
并搜索Excel工作表中突出显示的所需值的任何方式?
示例:
Id - Name
1001 John
1002 Jack
答案 0 :(得分:1)
因此,将此功能复制到新模块中。
然后,您可以通过其他函数或过程或通过= MultiCellExtract(A2:A3; A2:B3; 2)等单元格中的excel公式访问
' LookupValuesRange is an Excel Range of cells
Public Function MultiCellExtract(LookupValuesRange As Range, LookupRange As Range, ColumnNumber As Integer) As String
Dim cellValue As Range
Dim i As Long
Dim Result As String
For Each cellValue In LookupValuesRange
For i = 1 To LookupRange.Columns(1).Cells.Count
If LookupRange.Cells(i, 1) = cellValue.Value Then
Result = Result & " " & LookupRange.Cells(i, ColumnNumber) & ","
End If
Next i
Next cellValue
MultiCellExtract = Left(Result, Len(Result) - 1)
End Function
让我知道是否有帮助,或者我们可以进行调整。