首页 > 解决方案 > 我需要跳过我的 vba 按钮中的空单元格并在不为空时打开

问题描述

我有一个按钮,每当我单击它时都会打开一个链接查询,但是有时我的查询中的一个字段是空的,我需要我的代码继续前进并跳过空单元格,我该如何解决这个问题

我已经尝试过 IsEmpty 并且无法达到预期的结果。VBA 世界对我来说是全新的,所以如果您发现任何愚蠢的错误或未优化的方法,请警告我。下面的代码是在我尝试跳过空单元格之前

Private Sub CommandButton1_Click()
    Dim SelecRng As Range

    Set SelecRng = ("F3:F44")

    Each Cell In SelecRng
    Set objShell = CreateObject("Wscript.Shell")
    objShell.Run (Cell)
    Next
End Sub

每当我尝试打开某些链接时,我都不想看到错误

标签: excelvba

解决方案


Tim Stack 提供了一个很好的答案,但是我建议使用而不是运行检查= vbNullString= ""并使用Cell.value2而不是Cell.value

在这个精确的例子中,这并不重要,但在其他一些情况下它可以;所以最好现在就养成这个习惯。

那将是:

Private Sub CommandButton1_Click()
Dim SelecRng As Range

    Set SelecRng = ("F3:F44") 'I would add a reference to the WB and WS here. Now it always refers to the active WB & WS

    For Each Cell In SelecRng
        If Cell.Value2 <> vbNullString Then
            Set objShell = CreateObject("Wscript.Shell")
            objShell.Run (Cell.Value2)
        End If
    Next

End Sub

推荐阅读