对于VBA来说是非常新的东西,很抱歉,我没有任何代码可供任何人评估,但是我希望我的查询有一个简单的解决方案。 在我的第一个活动工作簿中,列A有一个数字列表,从单元格A1开始,每次列出不同的行数。 我想复制包含信息的所有A列单元格,然后将它们粘贴到另一个工作簿中(如果第二个工作簿在此过程中可以保持关闭状态会更好)。 我希望的第二个工作簿中的粘贴位置再次位于A列内,但位于第一个空行中。即,我希望第二个工作簿是第一个工作簿曾经拥有的所有数据列A的列表。 很抱歉,如果我的问题不清楚,但希望你们能帮忙!
谢谢,期待您的投入!
答案 0 :(得分:0)
将此代码粘贴到工作簿的VBA编辑器中的一个具有源数据的新模块中(打开VBA编辑器:ALT + F11),然后运行宏“ CopyToAnotherWorkbook”。
在运行之前,指定目标工作簿路径,提示在代码中。
Sub CopyToAnotherWorkbook()
Application.ScreenUpdating = False
Dim wb As Workbook: Set wb = ThisWorkbook
Dim ws As Worksheet: Set ws = wb.ActiveSheet
Dim LastRow_wb%: LastRow_wb = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
Dim arr() As Variant
ReDim arr(0 To LastRow_wb - 1)
For i = 1 To LastRow_wb
arr(i - 1) = ws.Cells(i, 1)
Next i
Dim wb2 As Workbook: Set wb2 = Workbooks.Open("C:\Book2.xlsx") ' <- Paste your Link to the Workbook here!
Dim ws2 As Worksheet: Set ws2 = wb2.Sheets(1)
Dim LastRow_wb2%: LastRow_wb2 = ws2.Cells(ws2.Rows.Count, "A").End(xlUp).Row + 1
If LastRow_wb2 = 2 Then
LastRow_wb2 = 1
End If
ws2.Range("A" & LastRow_wb2 & ":A" & LastRow_wb2 + UBound(arr)).Value = WorksheetFunction.Transpose(arr)
Application.ScreenUpdating = True
wb2.Close True
Set ws2 = Nothing
Set wb2 = Nothing
Set ws = Nothing
Set wb = Nothing
End Sub