gpt4 book ai didi

vba - 使用 VBA 将工作表从一个 WB 复制到另一个 WB,无需打开目标 WB

转载 作者:行者123 更新时间:2023-12-02 14:08:24 24 4
gpt4 key购买 nike

我是 VBA 新手,正在尝试自动更新工作簿。我有一个源工作簿 A 和一个目标工作簿 B。两者都有一个名为推出摘要的表。我希望用户更新 A 中的此工作表,然后单击更新按钮,该按钮应该运行我的宏。此宏应自动更新工作簿 B 中的工作表,而无需打开工作簿 B。

我正在尝试此代码,但它不起作用并给我一个错误:

Dim wkb1 As Workbook
Dim sht1 As Range
Dim wkb2 As Workbook
Dim sht2 As Range

Set wkb1 = ActiveWorkbook
Set wkb2 = Workbooks.Open("B.xlsx")
Set sht1 = wkb1.Worksheets("Roll Out Summary") <Getting error here>
Set sht2 = wkb2.Sheets("Roll Out Summary")

sht1.Cells.Select
Selection.Copy
Windows("B.xlsx").Activate
sht2.Cells.Select
Selection.PasteSpecial Paste:=xlPasteFormulasAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False

最佳答案

sht1sht2 应声明为 Worksheet。至于在不打开工作簿的情况下更新工作簿,这是可以完成的,但需要采用不同的方法。为了让您看起来好像没有打开工作簿,您可以打开/关闭 ScreenUpdating

试试这个:

Dim wkb1 As Workbook
Dim sht1 As Worksheet
Dim wkb2 As Workbook
Dim sht2 As Worksheet

Application.ScreenUpdating = False

Set wkb1 = ThisWorkbook
Set wkb2 = Workbooks.Open("B.xlsx")
Set sht1 = wkb1.Sheets("Roll Out Summary")
Set sht2 = wkb2.Sheets("Roll Out Summary")

sht1.Cells.Copy
sht2.Range("A1").PasteSpecial xlPasteValues
Application.CutCopyMode = False
wkb2.Close True

Application.ScreenUpdating = True

关于vba - 使用 VBA 将工作表从一个 WB 复制到另一个 WB,无需打开目标 WB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29092465/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com