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

VBA命名范围

如何解决VBA命名范围

下面有一个代码,我尝试将参考范围更改为动态范围。我以某种方式引用了它。任何想法如何解决这一问题?如果我去Workrange,基本上Workrange.Select引用是可以的,但是在“相交”上下文中不起作用。


Set StartCell = Range("A5")
Set StartSheet = Worksheets("Data")

With Worksheets("Data").Range("A4:BZ4")
    Set LastColumn = .Find("Comment",LookIn:=xlValues)
End With

Set Workrange = StartSheet.Range(StartCell,StartSheet.Cells(5000,LastColumn.Column))

If Not Intersect(Target,Range("Workrange")) Is nothing Then ' --> This does NOT work

'If Not Intersect(Target,Range("A5:AC5000")) Is nothing Then --> THIS WORKS.
If Target.Count > 1 Then Exit Sub
Cells(Target.Row,LastColumn.Column + 1).Value = Environ("username")
Cells(Target.Row,LastColumn.Column + 2).Value = Format(Now,"dd/mm/yyyy_hh.mm.ss")
End If
End Sub

解决方法

应该是:

If Not Intersect(Target,Workrange) Is Nothing Then

使用Range("Workrange")时,它正在被称为“工作范围”(公式->名称管理器)的工作簿中查找范围。

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