我需要更改以下代码,以便从不同工作表上的列表中提取数字,而不是包含在代码中。我需要这个列表是动态的,因为将来会有数字添加到列表中。
For a = 1 To Lcell
v = Cells(a, 2).Value
If v = "1200" Or v = "652" Or v = "552" Then
If Not RngDelFund Is Nothing Then
Set RngDelFund = Application.Union(RngDelFund, Cells(a, 2).EntireRow)
Else
Set RngDelFund = Cells(a, 2).EntireRow
End If
End If
Next a
在其他工作表上列出
1200
652
552
将来要添加的+号码
答案 0 :(得分:0)
假设列表位于另一个工作表的A列中,将范围对象设置为搜索,如下所示:
Dim rngToSearch as Range
Set rngToSearch = Worksheets("some_other_sheet_name").Range("A:A")
您可以修改其.Range("A:A")
部分以引用另一张纸上的任何矢量范围(仅1列或 1行)。如果它不符合该标准,那么您必须使用.Find
方法。但通常列表是以行或列的形式给出的,所以我现在假设它。
然后,要检查该范围内是否存在v
值,只需使用Application.Match
函数,如果找不到匹配项将返回错误值,您可以捕获:
For a = 1 To Lcell
v = Cells(a, 2).Value
If Not IsError Application.Match(v, rngToSearch, False) Then
If Not RngDelFund Is Nothing Then
Set RngDelFund = Application.Union(RngDelFund, Cells(a, 2).EntireRow)
Else
Set RngDelFund = Cells(a, 2).EntireRow
End If
End If
Next a