VBA,活动表问题

时间:2018-12-12 15:56:11

标签: excel vba

我正在尝试通过Transfer宏将选定的数据从一个工作表传输到另一个工作表。 每次尝试这样做时,我都会在Debug中收到以下消息:

Sub Transfer Macro
    ActiveCell.Offset(-10, -7).Range("A1").Select

    Selection.Copy

    Sheets("Data Presentation Template").Select

    ActiveCell.Offset(-25, -6).Range("A1").Select

    ActiveSheet.Paste
End Sub

是否有更好的方法将数据从数据输入表传输/镜像到无宏的演示文稿表?

1 个答案:

答案 0 :(得分:1)

您的ActiveCell.Offset( r c )命令使用负数。这些取决于当前活动的单元格是否处于负偏移不尝试的位置。选择一个不在工作表A列左侧的单元格还是一个位于第1行上方的单元格。

ActiveCell.Offset(-10, -7).Range("A1").Select

这要求ActiveCell至少在A1下方10行,在7列以内;特别是K8或K8的右/下。由于您试图选择不在工作表中的单元格,因此更接近A1的位置都会产生错误。

ActiveCell.Offset(-25, -6).Range("A1").Select

此语句相同,但ActiveCell与A1的最小距离为Z7。

每次选择另一个单元格时,ActiveCell属性都会更改。除非您确保在运行子过程之前 ,要确保ActiveCell在每个工作表上都位于您希望的位置,否则不能依靠它在工作表之间“自动传输”数据。

任何进一步的建议都需要特定的工作表名称和范围,以作为复制和粘贴操作的源和目标。


ActiveCell.Offset(-10,-7).Range(“ A1”)中的.Range(“ A1”)。Select仅表示ActiveCell.Offset(-10, -7)范围。相对定位的宏录制很可能是“宿醉​​”。