for loop和if语句要复制到另一个工作表中

时间:2016-06-02 02:14:42

标签: excel vba for-loop macros

我目前正在尝试检查2列中的单元格(每个列都有一个循环)并查看它们是否具有字符串true。如果是,我想将一些相应的单元格复制到另一张表(日志)。

我知道我有一些单元格,其中包含单词true,但是当我运行该程序时,没有任何内容可以复制到我的其他工作表中。

我没有得到任何编译错误,并想知道我在这段代码中的错误。

Sub isLimit()

    Dim a As Long, b As Long, Lr As Long

    x = 2
    y = 2
    Lr = Worksheets("Targets").Cells(Rows.Count, "A").End(xlUp).Row


    For i = 8 To Lr
    If (StrComp(Cells(i, 15).Text, "TRUE")) = 0 Then
    Worksheets("Log").Range("B" & x) = "no"
    x = x + 1
    End If
    Next i

    For j = 8 To Lr
    If (StrComp(Cells(j, 16).Text, "TRUE")) = 0 Then
    Worksheets("Log").Range("B2") = Worksheets("Targets").Range("B1").Value
    Worksheets("Log").Range("C" & y) = "yes"
    y = y + 1
    End If
    Next j

End Sub

1 个答案:

答案 0 :(得分:0)

到目前为止,我可以看到两个可能导致麻烦的问题。

1.由于您没有设置要从下面一行检查哪些工作表,

它将检查活动表格单元格i,15然后返回-1或0(真或假)。

仅当您的屏幕显示存储数据的工作表时才能使用。

If (StrComp(Cells(i, 15).Text, "TRUE")) = 0 Then

2.如果您的DATA包含其他内容,则为TRUE(例如,值之前或之后的空格)。

它可能会将其视为“TRUE”以外的其他内容

在不查看实际数据的情况下,我可以告诉他们。