【问题标题】:VBA Named RangeVBA 命名范围
【发布时间】:2020-08-27 20:01:28
【问题描述】:

我在下面有一个代码,我尝试将引用的范围更改为动态范围。我在某种程度上引用它是错误的。任何想法如何解决这一问题?基本上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

标签: vba named-ranges


【解决方案1】:

应该是:

If Not Intersect(Target, Workrange) Is Nothing Then

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

【讨论】:

  • 实际上现在代码似乎对单元格的变化没有反应。
  • @Carlsberg789 您使用了一些不合格的参考资料。很难说,问题出在哪里。尝试调整这些行:Set StartCell = Worksheets("Data").Range("A5")StartSheet.Cells(Target.Row, LastColumn.Column + 1).Value = Environ("username")StartSheet.Cells(Target.Row, LastColumn.Column + 2).Value = Format(Now, "dd/mm/yyyy_hh.mm.ss")
猜你喜欢
  • 2019-12-05
  • 2017-10-01
  • 2011-09-07
  • 1970-01-01
  • 1970-01-01
  • 2021-10-01
  • 2019-11-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多