【问题标题】:Select one cell with a pasted range in Worksheet_Change在 Worksheet_Change 中选择一个带有粘贴范围的单元格
【发布时间】:2016-12-05 15:04:27
【问题描述】:

我有一个常规的 VBA Worksheet_Change(ByVal Target As Range) 例程,除了用户粘贴一系列单元格而不是更改单个单元格值时,它工作正常。

有没有办法在例程开始时区分这两种情况,以便:

  1. 单个单元格更改正常运行
  2. 将设置粘贴的范围 target 到范围内已更改的最后一个单元格(即 粘贴 A1:Z5 将选择 Z1) - 在运行例程之前 正常

【问题讨论】:

  • If Target.Count > 1 Then
  • 发布您的代码可能会有用 - 在这里更改 Target 是可疑的,因为它不像 Cancel。粘贴的更改已经发生。
  • 谢谢你正是我所需要的:) @Comintern,感谢您指出有关更改的警告,但是我的代码无论如何都会遍历每一列,所以这不是问题

标签: vba onchange


【解决方案1】:

非常简单的选择:

A1:Z5 会选择 Z5:

If Target.Count > 1 Then
    Set Target = Target.Cells(Target.Rows.Count, Target.Columns.Count)
End If

A1:Z5 会选择 Z1:

If Target.Count > 1 Then
    Set Target = Target.Cells(1, Target.Columns.Count)
End If

【讨论】:

  • 按照 OP 的例子应该是 Set Target = Target.Cells(1, Target.Columns.Count)
  • @user3598756 我已经修改了我的答案。但是,当我阅读“最后更改的单元格”时,我倾向于假设右下角,而不是右上角...
  • @Christmas007,同意
猜你喜欢
  • 2020-07-14
  • 2018-09-06
  • 1970-01-01
  • 2021-03-18
  • 1970-01-01
  • 1970-01-01
  • 2019-03-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多