Next In Without Excel中的嵌套循环中的错误

0 excel vba excel-vba

我试图通过检查"新数据"文件中的表来找出在我的"系统文件"中运行单元格上的Vlookup的方法.但是,如果存在#N/A错误,我希望单元格的值保持不变.我想出了以下内容,但是,我一直收到"Next without For"错误.是否可以转义嵌套的For Next循环?

tl; dr语义版本:

   For i 1 to 10
       For j 1 to 3 
          Something with .Cells(i,j) 
          Set range X = .Find(thing
          If X = Nothing Then
            Next j *** <THIS IS WHERE MY ERROR IS THROWN
          Else
            -Do Something with X-
          End if
       Next j
   Next i
Run Code Online (Sandbox Code Playgroud)

我或多或少的实际代码如下:

Sub Thing()
    Dim SysWS As Worksheet
    Dim NewDataWS As Worksheet
        Dim NDSKUs As Range   ' This is set to the first column of the NewDataWS
        Dim NDMonthsRow As Range ' This is set to the first row of the NewDataWS      
    Dim SKU2look4 As String, Month2look4 As String        
        Dim ifoundtheSKU As Range 'the result of finding SKU2look4 inside of NDSKUs range
        Dim ifoundtheDate As Range 'the result of finding Month2look4 inside of NDMonthsRow range
    Dim i As Integer, j As Integer
    Dim workzone As Range 'The Cell being evaluated 
For i = 2 To SysWS.UsedRange.Columns.Count
  For j = 2 To SysWS.UsedRange.Rows.Count
     Set workzone = SysWS.Cells(j, i)
        SKU2look4 = SysWS.Cells(j, 1) 'SKUs are along the left column
        Month2look4 = SysWS.Cells(1, i) 'Dates are along the top row

'1-Find the right Date Column for extraction
    Set ifoundtheDate = NDMonthsRow.Find(What:=Month2look4, LookIn:=xlValues, _
                    LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
                    MatchCase:=False, SearchFormat:=False)
        If ifoundtheDate Is Nothing Then
                    Debug.Print (Month2look4 & " -Date NOT Found in New Date File")
                    ******Next j******
        Else
                    Debug.Print ("ifoundtheDate:" & ifoundtheDate.Address)
        End If
'2-Find the row
    Set ifoundtheSKU = NDSKUs.Find(What:=SKU2look4, LookIn:=xlValues, _
                    LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
                    MatchCase:=False, SearchFormat:=False)
        If ifoundtheSKU Is Nothing Then
                    Debug.Print (SKU2look4 & " Not Found in the New Data File")
                    *********Next j******
            Else
                    Debug.Print ("ifoundtheSKU:" & ifoundtheSKU.Address)
        End If

'Set the "workzone" cell's value to that of the found row offset by the found column
                workzone = ifoundtheSKU.Offset(, (ifoundtheDate.Column - 1))
    Next j
Next i
Run Code Online (Sandbox Code Playgroud)

当然,***实际上并不在那里.有关如何实现这一目标的任何想法?提前致谢

Tim*_*ams 7

For i = 1 to 10        
   For j = 1 to 3

     Something with .Cells(i,j) 

     Set rngX = .Find(thing)           
     If Not rngX Is Nothing Then

       Set rngY = .Find(thingelse)
       If Not rngY Is Nothing Then
          'something with rngX and rngY
       End If 

     End if

   Next j    
Next i
Run Code Online (Sandbox Code Playgroud)