我在Excel中有一张表格,我想确保如果用户连续填写至少一个单元格,那么他们也必须填写该行中的所有其他单元格。
我已经尝试在下面为其创建VBA代码。基本上,这就是说,如果我表的第7行中的任何字段均已填充,请检查表中的第一个单元格是否为空白。我将复制/粘贴代码,以便它检查行中的其他单元格是否也被填充。
[当我尝试运行此命令时,它显示“对象不支持此属性或方法”。有人可以帮我吗?
Sub blank()
If Range("H7:Q7").CountA >= 1 Then
If Cells(7, 8).Value = "" Then
MsgBox "Condition Type cannot be blank"
'I will repeat for the other columns in the row as well.
End If
End If
End Sub
您有正确的想法;这是正确的语法:
If Application.WorksheetFunction.CountA(Range("H7:Q7")) > 0 Then
MsgBox "something is there"
End If
请尝试此代码。范围没有方法CountA
。 CountA
功能属于Application.WorksheetFunction
:
Sub blank()
Dim sh As Worksheet, rngEmpty As Range
Set sh = ActiveSheet 'use here your sheet
If WorksheetFunction.CountA(sh.Range("H7:Q7")) >= 1 Then
If WorksheetFunction.CountA(sh.Range("H7:Q7")) <> sh.Range("H7:Q7").Cells.count Then
Set rngEmpty = sh.Range("H7:Q7").SpecialCells(xlCellTypeBlanks)
MsgBox "Condition Type cannot be blank!" & vbCrLf & _
"Blank cell(s) in " & rngEmpty.address, vbInformation, _
"No blank cells allowed"
End If
End If
End Sub