带有输入框的 If 语句 - 不工作

If Statement with an InputBox - Not Working

我正在尝试编写一个宏来查看单元格并告诉我它是否为空,如果为空,则打开一个输入框来填充单元格。无论单元格是否为空,下面的代码都不会打开消息框。 C37 是一个合并的单元格,我知道它可能会把事情搞砸。我在这里错过了什么?

If IsEmpty("C37") Then


Dim SIGN As String          'Sign-off

SIGN = InputBox("Enter Your Name:", "Dispositioned By:")

Range("C37").Value = SIGN
Range("G37").Value = Format(Now(), "MM/DD/YYYY")

Else

Range("B26").Select

End If

更新:

使用 ActiveSheet

 If IsEmpty(ActiveWorkbook.ActiveSheet.Range("C23")) Then

 Dim SIGN As String          'Sign-off

 SIGN = InputBox("Enter Your Name:", "Dispositioned By:")

 Range("C23").Value = SIGN
 Range("G23").Value = Format(Now(), "MM/DD/YYYY")

 Else

 Range("B13").Select

 End If
 End With

是我最终得到的新代码。即使单元格为 "empty"

,这也不会打开输入框

我应该使用与 IsEmpty 不同的短语吗?

 If IsEmpty(ThisWorkbook.Worksheets("Sheet1").Range("C37"))

问题是您没有告诉 IsEmpty 函数检查范围。你告诉它检查 "C37" 这是一个字符串文字而不是一个范围对象。

If IsEmpty(Range( "C37" )) = True 然后

SIGN = InputBox("Enter Your Name:")

范围("C37").Value = SIGN

其他

您的代码

好的。我已经解决了我的问题。

我有一个按钮可以重置此表单以清除单元格的内容并重新开始。

不幸的是,我找不到轻松清除合并单元格内容的方法,因此我使用了

Range("MERGEDCELL").Value = " "

基本上使单元格空白。但是,我的 IsEmpty 不会将这些单元格视为空的,因为它们中有一个 space,因此为什么当它对我来说看起来是空的(但它不是)时 InputBox 不会弹出...

我四处寻找清除合并单元格内容的替代方法,但收效甚微。如果有人在该领域有建议,请告诉我。再次感谢大家所做的一切。