微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么 VBA 中的这个联合范围会在 Excel 中选择不需要的单元格?

如何解决为什么 VBA 中的这个联合范围会在 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$60" Then
        myCell = myCell + 1
    ElseIf myCell.Address = "$G$63" Then
        myCell = myCell + 3
    Else
        myCell = myCell + 1
    End If
Next

End Sub

此宏将填充以下单元格:

enter image description here

如果你看得足够近,你会发现我没有选择 G62 但不知何故它在这个单元格中添加一个“1”,这怎么可能?

提前致谢

解决方法

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

你也可以用

替换你的If … End If
If myCell.Address = "$G$63" Then
    myCell = myCell + 3
Else
    myCell = myCell + 1
End If

较短但完全相同。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。