我需要excel的vba代码。我正在检查A1,B7,C9是否为空。
如果它们是空的(任何或所有变量都是空的),我需要返回:
“是如此,所以细胞是空的,点击确定填充它”
如果没有单元格为空,或者所有单元格都不为空,或者它们包含任何值,我需要返回:
“做我的东西”
指向特定工作簿的链接,但我也想在这里查看。
答案 0 :(得分:1)
Sub tgr()
Dim CheckCell As Range
For Each CheckCell In Sheets("Sheet1").Range("A1,B7,C9").Cells
If Len(Trim(CheckCell.Value)) = 0 Then
CheckCell.Select
MsgBox "Cell " & CheckCell.Address(0, 0) & " is empty. Click OK and populate it.", , "Missing Information"
Exit Sub
End If
Next CheckCell
'All cells filled, code to Do My Stuff goes here
MsgBox "Do my stuff", , "Continue macro"
End Sub
答案 1 :(得分:1)
如果您关心单元格是否为空,则需要在Value属性上使用IsEmpty函数。对于具有单撇号的单元格或返回空字符串的函数,这将返回false。
Public Function CellsAreEmpty(ParamArray aCells() As Variant) As Boolean
Dim vItm As Variant
Dim bReturn As Boolean
bReturn = True
For Each vItm In aCells
bReturn = bReturn And IsEmpty(vItm.Value)
Next vItm
CellsAreEmpty = bReturn
End Function
Sub TestCells()
If CellsAreEmpty(Range("A1"), Range("B7"), Range("C9")) Then
Debug.Print "Do stuff"
Else
Debug.Print " is so so so cell is empty click ok to fill it"
End If
End Sub
答案 2 :(得分:0)
这是你在找什么?
下面的代码将检查sheet1-范围A1,B7,c9。
Sub checkEmptyCells()
With ThisWorkbook.Sheets("sheet1")
If (Len(.Range("A1")) = 0) Then
MsgBox "Cell A1 is empty. Click ok to fill"
Exit Sub
ElseIf (Len(.Range("B7")) = 0) Then
MsgBox "Cell B7 is empty. Click ok to fill"
Exit Sub
ElseIf (Len(.Range("C9")) = 0) Then
MsgBox "Cell C9 is empty. Click ok to fill"
Exit Sub
Else
MsgBox "Do my stuff"
Exit Sub
End If
End With
End Sub
答案 3 :(得分:0)
如果您更喜欢使用非vba解决方案,那么您可以使用条件格式。 它不会给出消息框,但会在空白时突出显示单元格。
要使用条件格式,请按照以下步骤进行操作