簡體   English   中英

Excel:如果單元格返回 #N/A 錯誤,則跳過循環

[英]Excel: Skip loop if cell returns #N/A Error

我寫了下面的腳本,但被這部分代碼掛斷了:

If TargetWb.Sheets("Expenses").Range("F61").Offset(0, i - 1).Value = CVErr(xlErrNA) Then GoTo Skip Else GoTo Continue

我正在嘗試做的事情:如果單元格的值返回 #N/A 作為 function 的一部分,我想轉到下一個循環。 關於如何做到這一點的任何建議?

提前感謝您的解決方案。 由於我仍然是初學者,因此也總是願意接受有關如何更好地構建此代碼的建議。


    Dim filePath As String
    Dim SourceWb As Workbook
    Dim TargetWb As Workbook
    Dim S_Deal As Range
    Dim i As Integer
    
    'SourceWb - Workbook were data is copied from
    'TargetWb - Workbook were data is copied to and links are stored
    
Application.ScreenUpdating = False
    
    Set TargetWb = ThisWorkbook
    filePath = ThisWorkbook.Sheets("Expenses").Range("S4").Value
    Set SourceWb = Workbooks.Open(filePath)

    For i = 1 To 6
   
 If TargetWb.Sheets("Expenses").Range("F61").Offset(0, i - 1).Value = CVErr(xlErrNA) Then GoTo Skip Else GoTo Continue
    
Continue:

    Set S_Deal = TargetWb.Sheets("Expenses").Cells(11, 5 + i)
    SourceWb.ActiveSheet.Range("OPEX_Control").Value = S_Deal.Value
    
    
    TargetWb.Sheets("Expenses").Range("F12:F15").Offset(0, i - 1).Value = SourceWb.ActiveSheet.Range("P9:P12").Value
    TargetWb.Sheets("Expenses").Range("F18:F21").Offset(0, i - 1).Value = SourceWb.ActiveSheet.Range("o14:o17").Value
    TargetWb.Sheets("Expenses").Range("F23:F26").Offset(0, i - 1).Value = SourceWb.ActiveSheet.Range("o19:o22").Value
    TargetWb.Sheets("Expenses").Range("F29").Offset(0, i - 1).Value = SourceWb.ActiveSheet.Range("o25").Value
    
Skip:
    
    Next i


Application.ScreenUpdating = True

End Sub

如果要檢查excel function是否在vba中返回#N/A,可以使用以下代碼:

If Application.WorksheetFunction.IsNA(Cells(intRow, x)) Then

由於您想要的是執行代碼,除非 wb.function 不是#N/A,因此通過重新安排 If VBA 代碼應該能夠達到您想要的結果。

If Application.WorksheetFunction.IsNA(TargetWb.Sheets("Expenses").Range("F61")) = false then
{your code}
end if

next i

所以當 wb function 返回 #N/A 時,它不會執行中間的代碼和 go 到下一個循環

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM