检查一系列#N / A单元格中的空单元格

时间:2016-03-06 18:24:38

标签: excel-vba do-while vba excel

我正在寻找一个宏来查找包含两个标准之一的行(在twho列中):“”或“Productivité”。 找到包含这些单元格的第一行后,我正在尝试循环向下移动此行。如果下一个向下单元格既不包含“”或“productivité,我必须调整我的范围以向其添加一行。”

这就是问题所在。当我测试Do While Not Range(strDépartPlage).Value Is Nothing And Range(strDépartPlage).Offset(, -1).Value <> "productivité"时,由于第一个条件Do While Not Range(strDépartPlage).Value Is Nothing,它无效。这是因为细胞含有#N/A。我该如何处理?

Dim strFirstCelVideOuProd As String
Dim rng1erCelVide As Range
Dim rng1erCelProd As Range

Set rng1erCelVide = Range("E3:E60").Find("", Range("E3"))                  
Set rng1erCelProd = Range("D3:D60").Find("productivité", Range("D3"))

If rng1erCelVide.Row < rng1erCelProd.Row Then
     strFirstCelVideOuProd = rng1erCelVide.Address(False, False)
ElseIf rng1erCelVide.Row > rng1erCelProd.Row Then
     strFirstCelVideOuProd = rng1erCelProd.Address(False, False)
End If

Dim strDépartPlage As String
count = 0
strDépartPlage = Range(strFirstCelVideOuProd).Offset(1, 0).Address(False, False)


Do While Not Range(strDépartPlage).Value Is Nothing And Range(strDépartPlage).Offset(, -1).Value <> "productivité"
count = count + 1
strDépartPlage = Range(strDépartPlage).Resize(count, 0).Address(False, False)
MsgBox strDépartPlage

Loop

worksheet #N/A

换句话说,我正在尝试提取空白单元格和包含“Productivité”的单元格旁边的单元格的范围地址,以及包含“Productivité”的单元格旁边的单元格范围。 An explanation

1 个答案:

答案 0 :(得分:0)

与您的案例相关,您应该使用Excel Application.WorksheetFunction.IsNA()函数添加“N / A”检查,并从公式中排除这些单元格,例如:

Do While Not Range(strDépartPlage).Value Is Nothing And Not Application.WorksheetFunction.IsNA(strDépartPlage) And Range(strDépartPlage).Offset(, -1).Value <> "productivité"
count = count + 1
strDépartPlage = Range(strDépartPlage).Resize(count, 0).Address(False, False)
MsgBox strDépartPlage
Loop

希望这可能会有所帮助。