excel - MsgBox 中的 if 语句

标签 excel excel-formula vba

有没有人可以在 VBA 的 msgbox 中包含 if 语句?我似乎无法通过搜索找到合适的解决方案……

解释一下,假设我有三个单元格,a1 和 a2,如果其中任何一个为空,我希望将一个单词包含在 msgbox 中。

所以我想要类似的东西

Sub xx
  Msgbox if a1 = "" include "word one" end if &  if a2="" include "word two" end if
End sub 

我知道我可以使用 if msgbox 之外的语句,但我的问题有点大,需要超过 1000 种组合。

最佳答案

MsgBox将字符串作为第一个参数。所以你不能包含像 If 这样的语句。在里面。但是你可以使用 If构建一个字符串并将该字符串传递给 MsgBox像这样:

Sub xx()
    Dim message As String
    If a1 = "" Then
        message = "word one"
    End If
    If a2 = "" then
        message = message & "word two"
    End if
    MsgBox message
 End Sub

或者如果你真的想要它在一行中,你可以使用 IIF 这是一种内联 if (有重要区别,但在您的特定用例中并不重要)
Sub xx()
    MsgBox IIF(a1 = "", "word one","") & IIF(a2="", "word two", "")
End Sub

关于excel - MsgBox 中的 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39274924/

相关文章:

excel - 使用空输入单击确定后 application.inputbox 错误

VBA Microsoft.XMLHTTP setRequestHeader 不发送 cookie

vba - 搜索完全相同的日期或过去最接近的日期的函数 + 一个额外条件

arrays - 将2个数组乘以第三个空白数组范围VBA(Excel)

vba - 带有正则表达式的Excel-VBA连续点

excel - 循环遍历指定范围内的单元格

c# - 在c#中使用openxml sdk创建xlsx文件

vba - 对重复行求和,然后删除所有重复项

excel - 如何在 Excel 中映射对象?

excel - 使用 Excel 中单元格中的参数运行 Web 查询