我正在尝试通过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
是否有更好的方法将数据从数据输入表传输/镜像到无宏的演示文稿表?
答案 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)范围。相对定位的宏录制很可能是“宿醉”。