当我closures工作簿时,如何禁用excel vba中的剪贴板提示?

所以我正在使用多个工作簿,从Sheet1中将所有数据复制到主工作簿的相应工作表中。 我这样做后,我有多个工作簿编码closures。 然而,一个令人讨厌的提示,询问我是否想将复制的数据保存在剪贴板上,并且要么popup或者popup时,我要“自动”select“否”。

我知道有一个类似的问题已经被问到,但它没有为我工作,我想这是因为我有一个矩形区域的数据,而不是一个列? 我真的是新的vba,但我试图在Excel VBA工作簿closures禁用剪贴板提示中的代码搞乱,但我没有运气。

这是我的原始代码:

Sub CFM56copydata() Dim wbk As Workbook 'The workbook is opened using the text from a textbox in a userform ie: strFirstFile = Userform1.dog.Text Set wbk = Workbooks.Open(strFirstFile) With wbk.Sheets("Sheet1") Range("A1").Select Range(Selection, Selection.End(xlDown)).Select Range(Selection, Selection.End(xlToRight)).Select Selection.Copy End With Set wbk2 = ThisWorkbook wbk2.Sheets("dog").Range("A1").Insert wbk.Close End Sub 

这里是我试图调整它,所以我避免使用剪辑。 (没有工作,在第12行给我一个debugging错误)

 Sub fix() Dim wbk As Workbook strFirstFile = Userform1.CFM56path.Text Set wbk = Workbooks.Open(strFirstFile) Set wbk2 = ThisWorkbook Dim rSrc As Range Dim rDst As Range Range("A1").Select Range(Selection, Selection.End(xlDown)).Select Range(Selection, Selection.End(xlToRight)).Select Set rSrc = Selection Set rDst = wbk2.Sheets("dog").Cells("A1").Resize(rSrc.Rows.Count, rSrc.Columns.Count) rDst = rSrc wbk.Close End Sub 

如果剪贴板提示是问题,请在完成粘贴后将其清空。

 wbk2.Sheets("dog").Range("A1").Insert Application.CutCopyMode = False wbk.Close 

它应该工作,如果您更改您的wbk.Close语句为:

 Application.DisplayAlerts = False wbk.Close Application.DisplayAlerts = True