【问题标题】:Problems with an if statement in For loopFor循环中if语句的问题
【发布时间】:2021-02-02 02:44:06
【问题描述】:

我正在尝试在 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

当单元格包含值“数据确认”时,不应包含超链接,值应为“” 当单元格中没有“数据确认”时,应该会弹出一个超链接(参见“ELSE”后面的代码)

我做错了什么?

【问题讨论】:

  • 可能的问题: 1. then 之后的代码应该在then 之后的一行,而不是在同一行。 2. Cells() 应该接受两个数字作为参数,而不是任何字母。
  • 哦,没关系,我猜你可以使用一个字母作为该列的 cells() 的参数
  • 这是一个代码 sn-p。我们无法知道这是否发生在一个或多个工作表中,因为您在 Else 子句中使用了 sh 变量。请通过editing 您的问题(帖子)进行澄清。最好包含从SubEnd Sub的完整代码。Then之后的部分肯定要进入下一行,Else之前的一行。
  • 成功了,谢谢!!

标签: excel vba for-loop if-statement


【解决方案1】:

尽量简化并运行代码。浏览不同的列会更好地说明这一点。这个:

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

产生这个:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-19
    • 1970-01-01
    • 2020-03-24
    • 2016-06-16
    • 2019-06-09
    相关资源
    最近更新 更多