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")时,它正在被称为“工作范围”(公式->名称管理器)的工作簿中查找范围。