Excel 将活动工作簿设置为运行宏的工作簿

Excel 将活动工作簿设置为运行宏的工作簿,excel,vba,Excel,Vba,用户非常友好地向我提供了一些代码:Smartini 虽然我想做一点小小的改变,但它完全符合预期。宏在工作簿之间复制和粘贴数据,尽管我要从中复制的工作簿每次都会更改,始终使用随机生成的文件名 我想将下面的代码保存在个人宏工作簿中,并将其与初始工作簿一起运行,初始工作簿定义为运行宏的工作簿 希望我已经足够清楚,并期待着看到如果有人可以帮助 Sub CopyToAnotherWorkbook() Application.ScreenUpdating = False Dim wb As Workbo

用户非常友好地向我提供了一些代码:Smartini

虽然我想做一点小小的改变,但它完全符合预期。宏在工作簿之间复制和粘贴数据,尽管我要从中复制的工作簿每次都会更改,始终使用随机生成的文件名

我想将下面的代码保存在个人宏工作簿中,并将其与初始工作簿一起运行,初始工作簿定义为运行宏的工作簿

希望我已经足够清楚,并期待着看到如果有人可以帮助

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
将副本复制到其他工作簿()
Application.ScreenUpdating=False
将wb设置为工作簿:设置wb=ThisWorkbook
将ws设置为工作表:设置ws=wb.ActiveSheet
Dim LastRow_wb%:LastRow_wb=ws.Cells(ws.Rows.Count,
“A”)。结束(xlUp)。行
Dim arr()作为变量
ReDim arr(0到最后一行\u wb-1)
对于i=1至最后一行
arr(i-1)=ws.Cells(i,1)
接下来我

将wb2设置为工作簿:设置wb2=Workbooks.Open(“C:\Book2.xlsx”)“从中运行宏的对象”在您的个人工作簿中的含义是什么?您打算如何“从工作簿”启动此子例程?通过按钮什么的?我想你想要的是
ActiveWorkbook
@jnvill我指的是我在那一刻打开的工作簿,然后用键盘快捷键激活它在那种情况下,我想您只是想将
Dim wb As Workbook:Set wb=ThisWorkbook
更改为
Dim wb As Workbook:Set wb=ActiveWorkbook
@jnevil Nice one!!工作完美:D