2013-06-05 3 views
0

간단한 매크로를 작성하여 인접한 두 열의 한 행을 붙여 넣은 다음 app.ontime을 추가하여 복사 & 붙여 넣기 매크로를 자동으로 실행했습니다. 내 매크로를 적용 할 데이터 행이 여러 개 있습니다. 이견있는 사람?VBA 여러 행의 인접한 열 복사 및 붙여 넣기

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). 

답변

0

정확하게 문제가 무엇인지 설명해 주시겠습니까? 너는 무엇을 고치거나 향상시키고 자 하는가? 작동하지 않는 것이 있습니까? 업데이트 섹션

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 초마다 PasteDynamicData를 실행하도록 설정되어 있습니다.

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 
+0

안녕하세요 Rwisch45 저는 신참 Vba'r입니다. 그래서 코드를 단계별로 작성했습니다. 내가 코드를 작성하기 시작했을 때 그것을 한 세트의 데이터에만 적용 했으므로 이제는 매크로의 마지막 단계에 있습니다. 코드를 확장하여 20 개 이상의 행 (데이터 요소)의 가변 크기 범위에 적용하려고합니다. – Elliot

관련 문제