是否可以将多个Excel工作簿中的相同特定单元格导出到一个Excel工作表中?

时间:2019-07-11 21:30:26

标签: excel vba

我正在制作Excel表格退款申请表。我设法制作了一个按钮,可以打印2份并将其另存为已填写的表格。但我希望能够将表单摘要(4个特定的单元格-日期,名称,商品名称,商品ID代码)上传到Google电子表格。为了简化操作,我想制作一个主工作簿,从中复制并粘贴当天填写的所有表格的摘要。

我曾尝试通过API研究excel-google表格的集成,但是我不是程序员,因此这个话题使我不知所措。

我也找到了这个主题:Importing Data from specific excel sheets from multiple workbooks in a folder

但是这里的代码复制了整列,而我只需要4个特定的单元格即可。

 Private Sub CommandButton1_Click()

    response = MsgBox("Jesteś pewien?", vbYesNo)

    If response = vbNo Then
        MsgBox ("Macro Ending")
        Exit Sub
    End If

    Dim path As String
    Dim filename1 As String

    path = "D:\filled forms\"

    filename1 = Format(Now, "dd-mm-yyyy") & " " & Range("C9") & " " & Range("G6")
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs Filename:=path & filename1 & ".xlsm",
    FileFormat:=xlOpenXMLWorkbookMacroEnabled
    ActiveSheet.PrintOut Copies:=2, Collate:=False

    With ThisWorkbook.Worksheets("sheet1")
        .Range("E29").Copy
        With Workbooks("mastersheet.xlsx").Worksheets("Arkusz1")
            Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
        End With
    End With

End Sub

不幸的是,这段代码并没有覆盖单元格的内容,最终我得到了空的工作簿。

编辑:我设法找到了解决方案,这就是它的样子

Private Sub CommandButton1_Click()

response = MsgBox("Jesteś pewien?", vbYesNo)

If response = vbNo Then
    MsgBox ("Akcja anulowana.")
    Exit Sub
End If

Dim path As String
Dim filename1 As String

path = "D:\"

filename1 = Format(Now, "dd-mm-yyyy") & " " & Range("C9") & " " & Range("G6")
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=path & filename1 & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
ActiveSheet.PrintOut Copies:=2, Collate:=False
Worksheets("Sheet1").Range("C34:F34").Copy
Workbooks("analiza.xlsx").Worksheets("arkusz1").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues


End Sub

1 个答案:

答案 0 :(得分:0)

您可以仅复制您喜欢的单元格:

fieldType := reflectVal.Field(i).Type()