所以我正在处理多个工作簿,从每个工作簿的Sheet1中复制所有数据到主工作簿上的各自工作表中。在这样做之后,我已经编码关闭了多个工作簿。但是,一个令人讨厌的提示询问是否要一直保留复制的数据在剪贴板中不断地弹出,我希望它不会弹出,或者当它弹出时,自动选择“否”。
我知道有类似的问题已经被问过,但对我没有用,我认为这是因为我有一个矩形区域的数据,而不仅仅是一列?我真的很新vba,但我尝试在Excel VBA中禁用关闭工作簿时的剪贴板提示代码中进行操作,但我没有成功。
这是我的原始代码:
我知道有类似的问题已经被问过,但对我没有用,我认为这是因为我有一个矩形区域的数据,而不仅仅是一列?我真的很新vba,但我尝试在Excel VBA中禁用关闭工作簿时的剪贴板提示代码中进行操作,但我没有成功。
这是我的原始代码:
Sub CFM56copydata()
Dim wbk As Workbook
'The workbook is opened using the text from a textbox in a userform i.e:
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行给我一个调试错误)
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