簡體   English   中英

VBA拒絕空的SpecialCells范圍

[英]VBA rejecting empty Range of SpecialCells

我遇到與SpecialCells方法定義的范圍相關的“ For Each”問題。 當我運行下面的代碼時,會出現“下一個沒有For”錯誤,這是因為第一次運行代碼時rRange為空。 我可以將“ On Error Resume Next”放在該子程序的開頭,但是我試圖避免這種情況。

Public Sub Sub1()

Set rRange = Worksheets("Combate").Range("69:99").SpecialCells(xlCellTypeConstants, xlNumbers)
If Not rRange Is Nothing Then
    For Each c In rRange
        If c.Value <= turnoseg Then
            c.Offset(-2 * lincomb0 + 6).Value = c.Offset(-lincomb0 + 3).Value
            c.Value = ""
        Next c
    atualizarefeitos6
    End If

End Sub

在另一個子程序中,運行以下代碼后出現“未選擇任何單元格”錯誤。 我真的不知道如何真正解決這些潛艇中的錯誤,但是你們一定會知道的。

Sub efeitosaddatac6()

'On Error Resume Next
Set rRange = Worksheets("Combate").Range("69:99").SpecialCells(xlCellTypeConstants, xlNumbers)
For Each c In rRange
    c.Value = c.Value + 1
    Next c
atualizarefeitos6

End Sub

提前致謝。

正如John Coleman在評論中指出的那樣,您的第一個子例程無法正常工作,因為您缺少End If 您可能想要:

Public Sub Sub1()    
    Set rRange = Worksheets("Combate").Range("69:99").SpecialCells(xlCellTypeConstants, xlNumbers)
    If Not rRange Is Nothing Then
        For Each c In rRange
            If c.Value <= turnoseg Then
                c.Offset(-2 * lincomb0 + 6).Value = c.Offset(-lincomb0 + 3).Value
                c.Value = ""
            End If
        Next c
        atualizarefeitos6
    End If
End Sub

這是一致的代碼縮進有用的原因之一-突出顯示缺少End If ,等等。


我建議您如下更改第二個子例程:

Sub efeitosaddatac6()        

    Set rRange = Nothing
    On Error Resume Next
    Set rRange = Worksheets("Combate").Range("69:99").SpecialCells(xlCellTypeConstants, xlNumbers)
    On Error GoTo 0

    If Not rRange Is Nothing Then        
        For Each c In rRange
            c.Value = c.Value + 1
        Next c
        atualizarefeitos6
    End If    
End Sub

另外,如果在代碼模塊開始時尚未使用Option Explicit ,則建議您這樣做。 (我希望您已經在使用它,並且每個子例程中缺少變量聲明只是因為它們都是在模塊級別上聲明的。)

路易斯·菲略(Luis Filho),您需要輸入:

     End If

之前

     Next c

您需要定義的另一項是:

     atualizarefeitos6

這是變量還是函數?

暫無
暫無

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

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