Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA宏,用于将单元格列表一次复制到另一个工作表中,以进行API处理_Vba_Excel_Macros - Fatal编程技术网

VBA宏,用于将单元格列表一次复制到另一个工作表中,以进行API处理

VBA宏,用于将单元格列表一次复制到另一个工作表中,以进行API处理,vba,excel,macros,Vba,Excel,Macros,我对构建宏还不熟悉,但我认为我正在尝试做的是可能的,并且会让生活变得更加轻松。我正在尝试创建一个宏,该宏将工作表a列中100个单元格的列表一次复制一个到工作表详细信息中进行处理,然后将工作表详细信息(API运行后)的输出复制回工作表A3旁边的工作表1。然后我希望它移动到A4,并遵循相同的过程 我正在尝试构建一个宏,它将从工作表1复制单元格A3(a列中每个单元格下面有100个单元格),然后将其粘贴到工作表1中的$a$1中。在API运行之后,我希望它将$C$21、$C$22、$D$25(等另外5个固

我对构建宏还不熟悉,但我认为我正在尝试做的是可能的,并且会让生活变得更加轻松。我正在尝试创建一个宏,该宏将工作表a列中100个单元格的列表一次复制一个到工作表详细信息中进行处理,然后将工作表详细信息(API运行后)的输出复制回工作表A3旁边的工作表1。然后我希望它移动到A4,并遵循相同的过程

我正在尝试构建一个宏,它将从工作表1复制单元格A3(a列中每个单元格下面有100个单元格),然后将其粘贴到工作表1中的$a$1中。在API运行之后,我希望它将$C$21、$C$22、$D$25(等另外5个固定的输出单元格)复制回表1中A3旁边的第1行,这样它就是B3、D3、E3。等等

然后我想让它从第一张纸移到A4单元格,然后将它粘贴到第二张纸中的$A$1中,让API运行,将$C$21、$C$22、$D$25复制回第一张纸中A4旁边的第1行,这样它就是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")
非常感谢您的帮助

明白了

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
明白了

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