需要在另一张纸上循环数字并在循环中用作变量的方法

时间:2014-07-29 17:53:57

标签: vba

我需要更改以下代码,以便从不同工作表上的列表中提取数字,而不是包含在代码中。我需要这个列表是动态的,因为将来会有数字添加到列表中。

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

将来要添加的+号码

1 个答案:

答案 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