Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel For循环中if语句的问题_Excel_Vba_For Loop_If Statement - Fatal编程技术网

Excel For循环中if语句的问题

Excel For循环中if语句的问题,excel,vba,for-loop,if-statement,Excel,Vba,For Loop,If Statement,我试图在For循环中插入If语句,但不断出错。 代码是: For i = 3 To lastRow If Range("Q" & i).Value = "Data confirmed" Then Range("Q" & i).Value = "" Else sh.Cells(i, "Q").Hyperlinks.Add Anchor:=sh.Cells(i,

我试图在For循环中插入If语句,但不断出错。 代码是:

For i = 3 To lastRow
    If Range("Q" & i).Value = "Data confirmed" Then Range("Q" & i).Value = ""
    Else
    sh.Cells(i, "Q").Hyperlinks.Add Anchor:=sh.Cells(i, "Q"), Address:="", _
    SubAddress:="", TextToDisplay:="Click To Save"
    End If
    
Next i
当单元格包含值“数据确认”时,不应包含超链接,且该值应为“” 当单元格中没有“数据确认”时,应弹出一个超链接(请参见“其他”后面的代码)


我做错了什么?

尽量简化并运行代码。在不同的专栏里转转会更好地说明这一点。这个:

Sub TestMe()
    
    Dim i As Long

    For i = 3 To 10
        With Sheet1
            If .Range("A" & i) = "Data confirmed" Then
                .Range("B" & i).Value = ""
            Else
                .Cells(i, "C").Hyperlinks.Add Anchor:=.Cells(i, "D"), Address:="", _
                    SubAddress:="", TextToDisplay:="Click To Save"
            End If
        End With
    Next i
End Sub
产生以下结果:


可能的问题:1。
then
之后的代码应该在
then
之后的一行,而不是在同一行。2.Cells()应该使用两个数字作为参数,而不是任何字母。哦,没关系,我想您可以使用字母作为列的Cells()参数。这是一个代码片段。由于您在
Else
子句中使用了
sh
变量,我们无法知道这是否发生在一个或多个工作表中。请澄清你的问题(张贴)。最好包括从
Sub
End Sub
的完整代码。
之后的部分
肯定要进入下一行,在
之前的一行,否则
。这就成功了,谢谢!!