Vba 如果使用wb.name like,如何关闭工作簿

Vba 如果使用wb.name like,如何关闭工作簿,vba,excel,Vba,Excel,请您帮助关闭一个工作簿,其中在打开时使用了“like”,如下示例所示 Dim wb As Workbook For Each wb In Application.Workbooks If wb.Name Like "SHIPPING LIST*" Then wb.Activate Next wb Columns("A:I").Select Selection.Copy Windows("PRIORITIES TEMPLATE - SHIPPING LIST.xlsm").Activate She

请您帮助关闭一个工作簿,其中在打开时使用了“like”,如下示例所示

Dim wb As Workbook
For Each wb In Application.Workbooks
If wb.Name Like "SHIPPING LIST*" Then wb.Activate
Next wb
Columns("A:I").Select
Selection.Copy
Windows("PRIORITIES TEMPLATE - SHIPPING LIST.xlsm").Activate
Sheets("xyz - abc").Select
Range("A1").Select
Sheets("xyz - abc").Paste
试试这个: (摆脱了无用的、贪婪内存的“选择”和“激活”)


如果像“SHIPPING LIST*”这样的
wb.Name不起作用(从未在VBA中使用过它…),请使用
Instr(1,wb.Name,“SHIPPING LIST”)0则

不工作。关闭工作?您在哪里尝试关闭它?您的代码有几个问题-主要问题是您需要保留对正在使用的工作簿和工作表对象的引用<代码>激活和选择是邪恶的。另外,如果有多个打开的工作簿名称以“发货清单”开头,该怎么办?谢谢。它让我在到达wb.Columns(“A:I”).Copy后进行调试。您能帮忙吗?因为我们需要指定正在使用的te工作表。现在好吗?谢谢。我指定了工作表。调试现在下移到:Windows(“优先级模板-发货列表.xlsm”)。工作表(“xyz-abc”)。范围(“A1”)。粘贴指定错误消息,有助于识别。最佳猜测只需将
窗口(
切换到
工作簿(
),如果不够,请检查编辑。
    Dim wb As Workbook
        Dim WbName as String

    For Each wb In Application.Workbooks
    If wb.Name Like "SHIPPING LIST*" Then
        wb.Sheets(1).Columns("A:I").Copy
Destination:=Workbooks("PRIORITIES TEMPLATE - SHIPPING LIST.xlsm").Sheets("xyz - abc").Range("A1")
        wb.Close
    Else

    End if


    Next wb