In the end I have 15 ranges that this will be applied to. This is a snip of the code as it's redundant really. This is what I currently have and just wondering if there is a cleaner way with a for loop to do this.

```
Sub Select_Cells()
Dim rg1 As Range, rg2 As Range, rg3 As Range
If [B7] > "" Then Set rg1 = [A1] Else Set rg1 = Nothing
If [B8] > "" Then Set rg2 = [B2] Else Set rg2 = Nothing
If [B9] > "" Then Set rg3 = [C3] Else Set rg3 = Nothing
union(rg1, rg2, rg3).Select
End Sub

```

What I was hoping to do was something like this (yes I know the construction is wrong):

```
rg1 = "[A1]": rg2 = "[B2]": rg3 = "[C3]"
r = 7
For x = 1 To 15
If Range("B" & r) > "" Then Set rg(x) = rg(x) Else Set rg(x) = Nothing
r=r+1
Next x
union(rg1, rg2, rg3).Select

```

Any help would be most appreciative.