【发布时间】:2021-03-19 13:47:20
【问题描述】:
我编写了一个宏,可以将值从工作表的一部分复制到另一部分。
我的目标是每 X 分钟重复一次以跟踪历史记录。
我的代码从单元格 C4、H4、H6、C3、H3、C5、H7 和 H8 中获取值,并将它们粘贴到第 15-22 列的下一个可用单元格中。
它抛出
“运行时错误 9”.. 下标超出范围
我认为这意味着我的循环无法正常工作。
Option Explicit
Dim RunTime As Date
Sub copy_nano()
'
' copy Macro
'
'
RunTime = Now + TimeValue("00:02:00")
Application.OnTime RunTime, "copy_nano"
Worksheets("Nano Live").Range("C4", Range("C4")).copy
Worksheets("Nano Live").Cells(Rows.Count, 15).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Worksheets("Nano Live").Range("H4", Range("H4")).copy
Worksheets("Nano Live").Cells(Rows.Count, 16).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Worksheets("Nano Live").Range("H6", Range("H6")).copy
Worksheets("Nano Live").Cells(Rows.Count, 17).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Worksheets("Nano Live").Range("C3", Range("C3")).copy
Worksheets("Nano Live").Cells(Rows.Count, 18).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Worksheets("Nano Live").Range("H3", Range("H3")).copy
Worksheets("Nano Live").Cells(Rows.Count, 19).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Worksheets("Nano Live").Range("C5", Range("C5")).copy
Worksheets("Nano Live").Cells(Rows.Count, 20).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Worksheets("Nano Live").Range("H7", Range("H7")).copy
Worksheets("Nano Live").Cells(Rows.Count, 21).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Worksheets("Nano Live").Range("H8", Range("H8")).copy
Worksheets("Nano Live").Cells(Rows.Count, 22).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
End Sub
【问题讨论】:
-
表示活动工作簿没有“Nano Live”工作表。
-
大家好,感谢您的关注。所以我确实有一张名为“Nano Live”的工作表(检查没有多余的空格等......)@ gserg @BigBen 我认为它会循环由于运行时功能,它基本上每 2 分钟调用一次代码在上面案子。我想那不是正确的方法吗?关于如何构建“循环”的任何建议?
-
此代码所在的工作簿可能有一个名为“Nano Live”的工作表。活动工作簿不一定也包含它。
-
知道了,谢谢...我会看看激活那个确切的工作表.. 可能是因为我打开了大约 7 个 Excel,并且正在它们之间单击。
-
Ill look at activating that exact sheet- quite opposite,你应该用ThisWorkbook限定你的Worksheets。