2017-09-24 148 views
1

我有低於VBA代碼循環通過範圍在單元格L26及以下,它工作正常,但我想跳過,如果單元格是空白,我已經谷歌搜索,並發現此代碼:Excel VBA循環範圍和跳過空白

For i = 10 To 49 
    Cells(i, 4).Select 
    If Cells(i, 4).Value <> "" Then 
     code.... 
    End If 

如何將上面的代碼修改成我的vba代碼如下,感謝您的建議和幫助,謝謝。

Sub PLANNER() 

Dim loopRng As Range 
Dim r As Range 

Application.ScreenUpdating = False 
For Each r In Sheet7.Range("L26", Range("L" & Rows.Count).End(xlUp)) 
    Sheet7.Range("L19").Value = r.Value 
    Set loopRng = Worksheets("setting").Range("L21") 
    ActiveWindow.ScrollRow = loopRng 
    Application.CutCopyMode = False 
    Call planner_Mail 
Next r 
Sheet2.Range("D2").Select 

End Sub 

回答

1

看到代碼的評論我下面的代碼,解釋(有些問題):

Option Explicit 

Sub PLANNER() 

Dim loopRng As Range 
Dim R As Range 
Dim Sht As Worksheet 

Application.ScreenUpdating = False 

Set Sht = Sheet7 ' <-- make sure this is the worksheet you have your data 
With Sht 
    For Each R In .Range("L26", .Range("L" & .Rows.Count).End(xlUp)) 
     If Trim(R.Value) <> "" Then ' check that cell is not blank 
      .Range("L19").Value = R.Value 
      Set loopRng = Worksheets("setting").Range("L21") ' Not sure if Sheet7 = Worksheets("setting") 
      ActiveWindow.ScrollRow = loopRng 
      Application.CutCopyMode = False 
      planner_Mail ' you can "drop" the "Call" 
     End If 
    Next R 
End With 
Application.ScreenUpdating = True 

End Sub 
+0

Bravo!你的代碼工作完美,你正確地閱讀我的代碼!這已經結束了我的10個小時的谷歌搜索和反覆試驗,非常感謝您的幫助! – robin

+0

@robin不用客氣;) –

1

我認爲這應該做到這一點。

Sub PLANNER() 
Dim loopRng As Range 
Dim r As Range 

Application.ScreenUpdating = False 
    For Each r In Sheet7.Range("L26", Range("L" & Rows.Count).End(xlUp)) 
     If r.Value <> "" Then 
      Sheet7.Range("L19").Value = r.Value 
     End If 
    Set loopRng = Worksheets("setting").Range("L21") 
ActiveWindow.ScrollRow = loopRng 
Application.CutCopyMode = False 
    Call planner_Mail 
Next r 

Sheet2.Range("D2").Select 
End Sub 
+0

您好,感謝共享,但代碼不能正常工作,它沒有跳過空白單元格。 – robin

+0

@robin嗯,這應該工作。你確定這些單元格實際上是空白的嗎? – dwirony

+0

嗨,是的單元格是空白的,我改變代碼在這裏和那裏,仍然沒有工作。例如。我有10個單元格,例如。 L26到L35,之間有一些空白單元格,代碼只是在L35處重複上一個直到最後一個,如果空白則不跳過。 – robin