如果语句与一个InputBox – 不工作

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

是我结束了新的代码。 即使单元格为“空”,也不会打开input框,

是否有一个不同的短语,我应该使用比IsEmpty?

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

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

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

我有一个button,重置此表单来清除单元格的内容并重新开始。

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

 Range("MERGEDCELL").Value = " " 

基本上使单元变成空白。 然而,我的IsEmpty不会看到这些单元格为空,因为它们中有一个空格,所以为什么当它看起来对我来说是空的(但不是)InputBox不会popup…

我已经寻找替代scheme来清除合并单元格的内容,但几乎没有成功。 如果有人有这方面的build议,让我知道。 再次感谢所有人。

如果IsEmpty(Range(“C37”))= True那么

SIGN = InputBox(“input您的姓名:”)

范围(“C37”)。值= SIGN

其他

你的代码