Vba 如何删除在剪贴板上保存信息的提示?

Vba 如何删除在剪贴板上保存信息的提示?,vba,excel,Vba,Excel,我有一个VBA脚本,允许我选择一个文件,然后从该文件复制一个范围,并将其粘贴到目标工作表中。但是,每次我这样做时,都会打开源文件,然后关闭,这会提示我是否要将信息保存在剪贴板上 我不知道在不打开源excel的情况下复制数据是否更好 Option Explicit Sub DCDatabaseCopy() Dim vFile As Variant Dim wbCopyTo As Workbook Dim wsCopyTo As Worksheet Dim wbCopyFrom As Workbo

我有一个VBA脚本,允许我选择一个文件,然后从该文件复制一个范围,并将其粘贴到目标工作表中。但是,每次我这样做时,都会打开源文件,然后关闭,这会提示我是否要将信息保存在剪贴板上

我不知道在不打开源excel的情况下复制数据是否更好

Option Explicit

Sub DCDatabaseCopy()
Dim vFile As Variant
Dim wbCopyTo As Workbook
Dim wsCopyTo As Worksheet
Dim wbCopyFrom As Workbook
Dim wsCopyFrom As Worksheet
Dim DCRowCount As Integer

Set wbCopyTo = ActiveWorkbook
Set wsCopyTo = ActiveSheet

    '-------------------------------------------------------------
    'Open file with data to be copied

    vFile = Application.GetOpenFilename("Excel Files (*.*)," & "*.*", 1, "Select Excel File", "Open", False)

    'If Cancel then Exit
    If TypeName(vFile) = "Boolean" Then
        Exit Sub
    Else
    Set wbCopyFrom = Workbooks.Open(vFile)
    Set wsCopyFrom = wbCopyFrom.Worksheets(1)
    End If

    '--------------------------------------------------------------
    'Copy Range
    DCRowCount = wsCopyFrom.Range("A1", wsCopyFrom.Range("A1").End(xlDown)).Rows.Count

    wsCopyFrom.Range("A1:G" & DCRowCount).Copy
    wsCopyTo.Range("A2").PasteSpecial Paste:=xlPasteValues, _
            Operation:=xlNone, SkipBlanks:=False, Transpose:=False

    'Close file that was opened
    wbCopyFrom.Close SaveChanges:=False
End Sub

使用这两行代码之前和之后,它将绕过剪贴板提示

Application.DiplayAlerts = FALSE
Application.DiplayAlerts = TRUE
或者,您可能需要使用以下功能:

ActiveWindow.Close savechanges:=FALSE

显然,如果文件不在ActiveWindow中,请在关闭工作簿运行之前,将该部分代码替换为wherver

wbCopyFrom.Application.CutCopyMode = False
这将清除剪贴板。

首先将跳过所有提示,而不仅仅是剪贴板提示。第二个是他在最后一行中已经做过的事情。您只需在关闭之前退出CutCopyMode。