2016-03-06 126 views
0

我正在尋找一個宏來查找包含兩個條件之一的行(在twho列中):「」或「Productivité」。 找到包含這些單元格的第一行後,我試着循環向下移動這一行。如果下一個單元格不包含「」或「productivité我不得不調整我的範圍來增加一行到它。」檢查#N/A單元格範圍內的空單元格

這是問題。當我測試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

回答

0

有關你的情況,你應該從配方中添加檢查「N/A」使用Excel Application.WorksheetFunction.IsNA()功能,排除那些細胞,例如像:

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 

希望這可以幫助。

+0

實際上,第一個條件會產生一個錯誤:Range(strDépartPlage).Value = Error2042 –

+0

然後,您可以刪除導致錯誤的附加條件。答案與您問題標題中反映的主要問題相對應,因此如果它解決了主要問題(請檢查#N/A#),請將其標記爲已接受。如果您有其他問題/問題,請單獨發佈。感謝致敬, –

相關問題