Excel VBA检查多个区域是否为空,如果每个区域的第一个单元格为空,则输入数据

Excel VBA检查多个区域是否为空,如果每个区域的第一个单元格为空,则输入数据,excel,vba,Excel,Vba,我需要一个宏来查看6个特定范围: (“F15:F4999”) (“H15:H4999”) (“J15:J4999”) (“L15:L4999”) (“N15:N4999”) (“P15:P4999”) 如果这些范围中的一个或多个是空白的,我需要宏在空白范围(即F15)的第一个单元格中输入“无数据”。范围包含各种类型的数据,包括文本、美元值、日期和百分比 此宏将是其自身模块的一部分,并将在另一个宏结束时调用 我曾尝试使用COUNTA函数,但由于类型不匹配错误而挂起。下面的方法有效,但每次运行时仅适

我需要一个宏来查看6个特定范围:

(“F15:F4999”) (“H15:H4999”) (“J15:J4999”) (“L15:L4999”) (“N15:N4999”) (“P15:P4999”)

如果这些范围中的一个或多个是空白的,我需要宏在空白范围(即F15)的第一个单元格中输入“无数据”。范围包含各种类型的数据,包括文本、美元值、日期和百分比

此宏将是其自身模块的一部分,并将在另一个宏结束时调用

我曾尝试使用COUNTA函数,但由于类型不匹配错误而挂起。下面的方法有效,但每次运行时仅适用于第一个空白区域。(即,如果F列为空,它将输入“无数据”,但不会继续并输入“后续空白列中无数据”)

子FillFetchDataBlanks()
Application.ScreenUpdating=False
Application.EnableEvents=False
图纸(“图形数据”)。选择

如果Application.WorksheetFunction.CountA(范围(“F15:F4999”)您必须使用单独的
Ifs
,即不要使用
ElseIf
组合它们

试试这个

With Application.WorksheetFunction
    If .CountA(Range("F15:F4999")) <= 0 Then [F15] = "No Data"
    If .CountA(Range("H15:H4999")) <= 0 Then [H15] = "No Data"
    If .CountA(Range("J15:J4999")) <= 0 Then [J15] = "No Data"
    If .CountA(Range("L15:L4999")) <= 0 Then [L15] = "No Data"
    If .CountA(Range("N15:N4999")) <= 0 Then [N15] = "No Data"
    If .CountA(Range("P15:P4999")) <= 0 Then [P15] = "No Data"
End With
带有Application.WorksheetFunction

If.CountA(范围(“F15:F4999”))使用单独的Ifs,即不使用elsif组合它们
With Application.WorksheetFunction
    If .CountA(Range("F15:F4999")) <= 0 Then [F15] = "No Data"
    If .CountA(Range("H15:H4999")) <= 0 Then [H15] = "No Data"
    If .CountA(Range("J15:J4999")) <= 0 Then [J15] = "No Data"
    If .CountA(Range("L15:L4999")) <= 0 Then [L15] = "No Data"
    If .CountA(Range("N15:N4999")) <= 0 Then [N15] = "No Data"
    If .CountA(Range("P15:P4999")) <= 0 Then [P15] = "No Data"
End With