为确保填写表格行中的所有单元格而使用的宏

问题描述 投票:1回答:2

我在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

Table

excel vba excel-vba if-statement
2个回答
2
投票

您有正确的想法;这是正确的语法:

If Application.WorksheetFunction.CountA(Range("H7:Q7")) > 0 Then
    MsgBox "something is there"
End If

2
投票

请尝试此代码。范围没有方法CountACountA功能属于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
© www.soinside.com 2019 - 2024. All rights reserved.