使用多个条件压缩If Not Statement

时间:2015-10-08 22:24:22

标签: excel vba

我目前有size_t语句,可以查找某个范围。张贴的只是主要内容的一个派系。我如何压缩代码,因此我只需更改数组中的If Not或某种类型,而不是查找某个Range

Range

我希望它像:

Range("A3").Select
If Not IsEmpty(Range("a3")) Then
Range("a153").Select
End If
If Not IsEmpty(Range("a153")) Then
Range("a304").Select
End If
If Not IsEmpty(Range("a304")) Then
Range("a455").Select
End If
 If Not IsEmpty(Range("a455")) Then
Range("a606").Select
End If
 If Not IsEmpty(Range("a606")) Then
Range("a757").Select
End If
If Not IsEmpty(Range("a757")) Then
Range("a908").Select
End If
If Not IsEmpty(Range("a908")) Then
Range("a1059").Select
End If
If Not IsEmpty(Range("a1059")) Then
Range("a1210").Select
End If
If Not IsEmpty(Range("a1210")) Then
Range("a1361").Select
End If
If Not IsEmpty(Range("a1361")) Then
Range("a1512").Select
End If
If Not IsEmpty(Range("a1512")) Then
Range("a1663").Select
End If
If Not IsEmpty(Range("a1663")) Then
Range("a1814").Select
End If
If Not IsEmpty(Range("a1814")) Then
Range("a1965").Select
End If
If Not IsEmpty(Range("a1965")) Then
Range("a2116").Select
End If
If Not IsEmpty(Range("a2116")) Then
Range("a2267").Select
End If
If Not IsEmpty(Range("a2267")) Then
Range("a2418").Select
End If
ActiveSheet.Paste

我找不到合适的方法将所有范围放入(For Each rng In Range If Not IsEmpty(Range(i)) Then Range(i+1).Select End If ?)或集合中。

1 个答案:

答案 0 :(得分:0)

以下是前五个单元格的操作方法。您可以扩展列表:

Sub Mukul()
    Dim r As Range
    For Each r In Range("a3,a153,a304,a455,a606")
        If Len(r) Then
            'do whatever you want with 'r' here.
        End If
    Next
End Sub

<强>更新

试试这个:

Sub Mukul()
    Dim i&, v
    v = Array([a3], [a153], [a304], [a455], [a606])
    For i = 0 To UBound(v)
        If Len(v(i)) Then
            v(i + 1).Select
        End If
    Next
End Sub