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