2016-09-01 93 views
1

我是新建宏,但認爲我正在嘗試做的事情是可能的,並且會使生活變得如此簡單。我正在嘗試創建一個宏,它將一列一列中的100個單元格複製到SHeet Detailed中進行處理,然後將輸出從Sheet Detail(API運行後)複製回單元格旁邊的表格1中A3。然後我希望它移動到A4並遵循相同的過程。VBA宏將單元格列表一次一個地複製到另一個表單中以進行API過程

我正在嘗試構建一個宏,它將從表單1中複製單元格A3(這是列A中的100個單元格的列表),然後將其粘貼到$ A $ 1中作爲Sheet Detail。在API運行之後,我希望它複製$ C $ 21,$ C $ 22,$ D $ 25(等另外5個固定單元的輸出)回到Sheet 1到A3中相鄰的第1行,使它成爲B3,D3,E3。等等。

然後我希望它從第一張單元格移動到單元格A4,然後將它粘貼到Sheet Detail的$ A $ 1中,讓API運行,將$ C $ 21,$ C $ 22,$ D $ 25複製回Sheet 1第1行與A4相鄰,因此它是B4,D4,E4。等等。

我甚至不確定在這裏使用哪種術語。

我至今是:

Sub a() 

With Sheets("Sheet1") 
    For I = 3 To .Range("A" & Rows.Count).End(xlUp).Row 
     .Range("A" & I).Copy Sheets("Detailed").Range("A1") 
     Call Wait_Fo_API() 
     Sheets("Detailed").Calculate 
     .Range("B" & I).Value = Sheets("Detailed").Range("C21").Value 
     .Range("D" & I).Value = Sheets("Detailed").Range("C22").Value 
     .Range("E" & I).Value = Sheets("Detailed").Range("D25").Value 
     ' add rest of output cells 
    Next I 

End With 

End Sub 


Sub Wait_Fo_API() 

Application.OnTime Now() + TimeValue("00:02:00") 

您的援助將不勝感激!

回答

0

Got it!

Dim i As Integer 
Dim ws1 As Worksheet, ws2 As Worksheet 

Sub Start() 

Set ws1 = Sheets("Sheet1") 
Set ws2 = Sheets("Detailed") 

i = 2 

woopi2 

End Sub 

Sub woopi2() 

ws1.Range("A" & i).Copy 
ws2.Range("A1").PasteSpecial Paste:=xlPasteValues 

If ws1.Range("A" & i) = vbNullString Then 
    Exit Sub 
Else 
    Wait_For_Copy 
End If 

End Sub 

Sub Wait_For_Copy() 

Application.OnTime Now() + TimeValue("00:02:00"), "Copy_Values" 

End Sub 

Sub Copy_Values() 

    ws2.Range("C25").Copy 
    ws1.Range("B" & i).PasteSpecial Paste:=xlPasteValues 
    ws2.Range("C23").Copy 
    ws1.Range("D" & i).PasteSpecial Paste:=xlPasteValues 
i = i + 1 

woopi2 

End Sub 
相關問題