Excel VBA复印件&;粘贴多行的相邻列

Excel VBA复印件&;粘贴多行的相邻列,excel,vba,row,Excel,Vba,Row,我编写了一个简单的宏来复制和粘贴两个相邻列中的一行,然后添加app.ontime来自动运行复制和粘贴宏。我有多行数据要应用宏。有什么想法吗 Public Sub PasteDynamicData() 'runs TestKDdata every Xmin Sheets("MOVINGAVGDATAFromKD").Range("C4").Copy Range("J4").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, operation

我编写了一个简单的宏来复制和粘贴两个相邻列中的一行,然后添加app.ontime来自动运行复制和粘贴宏。我有多行数据要应用宏。有什么想法吗

Public Sub PasteDynamicData()

'runs TestKDdata every Xmin

Sheets("MOVINGAVGDATAFromKD").Range("C4").Copy

Range("J4").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, operation:= _
    xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False

Sheets("MOVINGAVGDATAFromKD").Range("I4:j4").Insert _
shift:=xlDown

Sheets("MOVINGAVGDATAFromKD").Range("D4").Copy

Range("m4").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, operation:= _
    xlNone, SkipBlanks:=False, Transpose:=False

Sheets("MOVINGAVGDATAFromKD").Range("L4:M4").Insert _
shift:=xlDown

Sheets("MOVINGAVGDATAFromKD").Range("i87:m87").ClearContents
End Sub

 Public Sub UpdateDataClock()
 'Clock that prompts running of PasteDynamicData
 Sheets("MOVINGAVGDATAFromKD").Select
 Call PasteDynamicData
 Nexttick = Now + TimeValue("00:00:30")
 Application.OnTime Nexttick, "updatedataclock"

        If Time >= TimeValue("16:00:00") Then
        Application.OnTime Nexttick, "updatedataclock", , False
End If
End Sub


(I declared "nexttick as date" in the module).

你能解释一下到底是什么问题吗?您希望修复或改进什么?有些东西不起作用了吗

无论如何,请尝试以下操作:

Public Sub PasteDynamicData()

Dim xlMovingSheet As Worksheet
Set xlMovingSheet = ActiveWorkbook.Worksheets("MOVINGAVGDATAFromKD")

xlMovingSheet.Range("C4").Copy

xlMovingSheet.Range("J4").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, operation:= _
    xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False

xlMovingSheet.Range("I4:j4").Insert _
shift:=xlDown

xlMovingSheet.Range("D4").Copy

xlMovingSheet.Range("m4").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, operation:= _
    xlNone, SkipBlanks:=False, Transpose:=False

xlMovingSheet.Range("L4:M4").Insert _
shift:=xlDown

xlMovingSheet.Range("i87:m87").ClearContents

Call UpdateDataClock
End Sub
对于更新部分,设置您想要的任何时间增量。现在它设置为每30秒运行一次CDATA

Public Sub UpdateDataClock()

Application.OnTime Now() + TimeValue("00:00:30"), "PasteDynamicData"

If Time >= TimeValue("16:00:00") Then
    Application.OnTime EarliestTime:=Now() + TimeValue("00:00:30"), Procedure:="PasteDynamicData", Schedule:=False
End If

End Sub

嘿,Rwisch45我是一个Vba'r新手,所以我分步骤编写代码。当我开始编写代码时,我只将其应用于一组数据&现在我已进入宏的最后一步;尝试扩展代码以应用于20+行(数据点)的可变大小范围。