首页 > 解决方案 > 如何将工作表一部分的多个单元格中的数据复制到另一部分?

问题描述

我编写了一个宏,它将值从工作表的一部分复制到另一部分。

我的目标是每 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

标签: excelvbaloops

解决方案


想回到你身边,A)感谢你的指导/帮助。B)说我找到了一个似乎有效的解决方案。(见下文)

我没有完全使用循环,但它仍然有效!

Sub 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

Call test

结束子

Sub test() Application.OnTime Now + TimeValue("00:10:00"), "copy_nano" End Sub


推荐阅读