首页 > 解决方案 > 将数据从 1 个 excel 传输到另一个的 VBA 宏

问题描述

我是 excel 宏 vba 的新手,请帮忙....我下面的代码是将数据从 1 个 excel 传输到另一个。但是,当我执行宏时,它只将 1 行,即 A2 和 B2 单元格值传输到另一个 excel 中。

这是数据到另一个的主要 excel

输出excel,它只传输1行..

我的 VBA 代码....

Private Sub CommandButton1_Click()

Dim InvoiceNumber As String
Dim ForwarderCode As String
Dim wb As Workbook

Worksheets("SampleFile").Select
InvoiceNumber = Range("A2")
Worksheets("SampleFile").Select
ForwarderCode = Range("B2")

Set wb = Workbooks.Open("C:DestinationPath.xlsm")
Worksheets("Sheet1").Select
Worksheets("Sheet1").Range("A2").Select
RowCount = Worksheets("Sheet1").Range("A1").CurrentRegion.Rows.Count
With Worksheets("Sheet1").Range("A1")
.Offset(RowCount, 0) = InvoiceNumber
.Offset(RowCount, 1) = ForwarderCode
End With

wb.Save

End Sub

请帮助它应该传输 A 列和 B 列中存在的全部数据....

标签: excelvba

解决方案


如果您想从 A1 复制到 C 最后填充的单元格,请尝试下一个代码:

Private Sub CommandButton1_Click___()
 Dim shSF As Worksheet, sh1 As Worksheet
 Dim wb As Workbook, lastRow As Long

 Set shSF = Worksheets("SampleFile")
 lastRow = shSF.Range("A" & Rows.count).End(xlUp).row

 Set wb = Workbooks.Open("C:DestinationPath.xlsm")
 Set sh1 = wb.Worksheets("Sheet1")
 
 shSF.Range("A1:C" & lastRow).Copy Destination:=sh1.Range("A1")

 wb.Save
End Sub

推荐阅读