无需询问即可覆盖数据

时间:2018-01-08 13:14:10

标签: excel-vba vba excel

我想编辑此宏来覆盖另一个工作簿中的先前数据而不提示。见附件。任何帮助将不胜感激。

Sub AV()

    Workbooks.Open Filename:="T:\Cleveland\Avon\Monthly Sales\Monthly Sales 2018.xls"

    Windows("Sales_By_Day_Location Analysis.xlsm").Activate
    Sheets("AV").Select
    Range("A1:AC88").Copy

    Windows("Monthly Sales 2018.xls").Activate

    Sheets("Avon").Select
    Range("A1:D1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats

    Application.CutCopyMode = False 'esp

End Sub

1 个答案:

答案 0 :(得分:1)

根据John的评论,在稍微整理一下代码之后,我相信下面的代码会像你期望的那样:

Sub AV()
Application.DisplayAlerts = False

Workbooks.Open Filename:="T:\Cleveland\Avon\Monthly Sales\Monthly Sales 2018.xls"
Workbook("Sales_By_Day_Location Analysis.xlsm").Worksheets("AV").Range("A1:AC88").Copy
Workbook("Monthly Sales 2018.xls").Sheets("Avon").Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats

Application.CutCopyMode = False 'esp
Application.DisplayAlerts = True
End Sub

您应该尝试不使用Activate或Select语句。此外,您的复制范围比粘贴范围大很多,因此为了这个答案,我将粘贴范围更改为A1。

如果您想保存工作簿并在没有提示的情况下关闭它,您可以执行以下操作:

Workbook("Monthly Sales 2018.xls").Close SaveChanges:=True