为什么这个 Union Range in VBA select 不需要的单元格在 Excel 中?

Why does this Union Range in VBA select unwanted cells in Excel?

我试图让我的生活更轻松一些,并通过使用由按钮激活的宏在某些单元格中填充一些值,宏看起来像这样:

Sub Fill_123()

Dim unionRange As Range
Dim ws As Worksheet
Set ws = Worksheets(1)

With ws
    Set unionRange = Union(.Range("G48:G48"), .Range("G51:G51"), .Range("G55:G55"), .Range("G58:G58"), .Range("G60:G60"), .Range("G61:G61", .Range("G63:G63")))
End With

Dim myCell As Range

For Each myCell In unionRange
    If myCell.Address = "$G" Then
        myCell = myCell + 1
    ElseIf myCell.Address = "$G" Then
        myCell = myCell + 3
    Else
        myCell = myCell + 1
    End If
Next

End Sub

此宏将填充以下单元格:

如果你看得足够近,你会发现我没有 select G62,但它以某种方式向这个单元格添加了一个“1”,这怎么可能?

提前致谢

您也可以使用 Set unionRange = .Range("G48,G51,G55,G58,G60,G61,G63") 而不是 Union,它会更短一些。

您也可以将 If … End If 替换为

If myCell.Address = "$G" Then
    myCell = myCell + 3
Else
    myCell = myCell + 1
End If

哪个更短但完全一样。