首页 > 解决方案 > 在具有可变目标行的单元格单击上运行宏

问题描述

我试图在选择该行的 H 列的单元格后立即自动传输变量行。因此,如果用户单击 H5,我希望将整个第 5 行复制到 I17 中的工作表“Rechnung”中。

这段糟糕的代码不能解决问题,因为复制行的范围没有正确定义:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Column = Range("H1").Column Then
    Range(Target.Row).Copy Destination:=Worksheets("Rechnung").Range("I17")
  End If
End Sub

有什么建议么?

谢谢,一切顺利,托马斯

标签: excelvba

解决方案


您不能复制整行并将其粘贴到第 17 列...它不适合。

尝试使用IntersectionTarget.EntireRow和工作表的UsedRange.

您还可以使用Intersect检查是否Target在 H 列中包含一个单元格:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Intersect(Target, Me.Range("H:H")) Is Nothing Then Exit Sub
  If Intersect(Target, Me.UsedRange) Is Nothing Then Exit Sub

  Intersect(Target.EntireRow, Me.UsedRange).Copy Destination:=Worksheets("Rechnung").Range("I17")
End Sub

推荐阅读