如果带有InputBox的语句 - 不起作用

时间:2017-04-05 16:15:57

标签: excel vba if-statement inputbox

我正在尝试编写一个查看单元格的宏并告诉我它是否为空,如果是,则打开一个输入框以填充单元格。无论单元格是否为空,以下代码都不会打开消息框。 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

新代码是否已经结束了。即使单元格为空,也不会打开输入框

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

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

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

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

不幸的是,我无法找到一种方法来轻松清除合并单元格的内容,所以相反,我使用了

Range("MERGEDCELL").Value = " "

基本上使细胞空白。但是,我的IsEmpty不会看到那些单元格是空的,因为它们中有空格,这就是为什么当它对我来说看起来是空的时候(但事实并非如此),InputBox不会弹出......

我已经四处寻找可以清除合并单元内容的替代方案,几乎没有成功。如果有人在该领域有任何建议,请告诉我。再次感谢大家的一切。

答案 2 :(得分:-1)

如果IsEmpty(范围(" C37"))= True则

SIGN = InputBox("输入您的姓名:")

范围(" C37")。值= SIGN

其他

您的代码