我正在尝试编写一个查看单元格的宏并告诉我它是否为空,如果是,则打开一个输入框以填充单元格。无论单元格是否为空,以下代码都不会打开消息框。 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
新代码是否已经结束了。即使单元格为空,也不会打开输入框34;
我应该使用的是与IsEmpty不同的短语吗?
答案 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
其他
您的代码