首页 > 解决方案 > Excel VBA:在两个工作表中为给定列中的每个单元格循环查找

问题描述

基本上,我想浏览特定列中的单元格,看看它是否适合两个可能的其他工作表中的属性(在该数据库的列中用“x”表示)。

如果它包含/具有该属性(vlookup 的结果是“x”),则将原始单元格的值粘贴到不同的单元格中。

我想为每行的两个属性执行此操作。因此,由于我必须在 2 个工作表中搜索 2 个可能的属性,因此我在循环中有 4 个 If/Then 语句。

我为这两个属性输入了“计数器”,这样如果我在列表中找到一个具有属性的项目,我确保如果我稍后找到另一个项目,它会插入到它下面的行中,而不是覆盖它。

我的代码运行时没有出现错误,但它没有产生任何结果。我为我的业余行为道歉,感谢您的耐心等待!

Sub ASSESS()

Dim counterF As Integer
Dim counterS As Integer
Dim cell As Range
Dim Ret As String

'These are counters to start logging the desired cells in rows 6 and 10, respectively, depending on if it fit attribute F or S

counterF = 6
counterS = 10

For Each cell In Worksheets("Sheet1").Range("C14:C64")

    Ret = CStr(Application.VLookup(cell, Worksheets("Activities").Range("B2:U1000"), 13, 0))

    If Ret = "x" Then
        Worksheets("Sheet1").Cells(counterS, 3) = cell
        counterS = counterS + 1
        Ret = ""
    Else
    End If

    Ret = CStr(Application.VLookup(cell, Worksheets("Song List").Range("B2:U1000"), 13, 0))

    If Ret = "x" Then
        Worksheets("Sheet1").Cells(counterS, 3) = cell
        counterS = counterS + 1
        Ret = ""
    Else
    End If

    Ret = CStr(Application.VLookup(cell, Worksheets("Activities").Range("B2:U1000"), 12, 0))

    If Ret = "x" Then
        Worksheets("Sheet1").Cells(counterF, 3) = cell
        counterF = counterF + 1
        Ret = ""
    Else
    End If

    Ret = CStr(Application.VLookup(cell, Worksheets("Song List").Range("B2:U1000"), 12, 0))

    If Ret = "x" Then
        Worksheets("Sheet1").Cells(counterF, 3) = cell
        counterF = counterF + 1
        Ret = ""
    Else
    End If

Next

End Sub

标签: vbaexcel

解决方案


推荐阅读