我正在编写一个宏来打开用户选择的文件,复制其中的所有数据并将其粘贴到已打开的另一个工作簿中。代码片段如下所示:
Windows(fileToClose).Activate
ActiveSheet.Range("A1").EntireRow.Delete
ActiveSheet.Range("A1:G1", Selection.End(xlDown)).Select
Selection.Copy
ActiveWindow.Close SaveChanges:=False
Windows(fileKeepOpen).Activate
Sheets("DATA").Select
ActiveSheet.Range("B2:H2", Selection.End(xlDown)).Clear
ActiveSheet.Range("B2").Select
ActiveSheet.Paste
它对选择的第一列起作用很好:它只接受第一个值并将其粘贴到目标列的任何位置。例如,如果选择的第一列中的第一个单元格包含“A”而第二个单元格包含“B”,则目标列将填充“A”。但对于第二栏,没有任何问题。
PasteSpecial根本不起作用(每列都有不同的数据格式,看起来Excel不希望我将所有内容都粘贴为值,因为它一直给我1004错误。)
有什么想法吗?
答案 0 :(得分:0)
我不知道你有什么样的数据,但这应该可以解决问题:
Dim RS As String
RS = "A1:G" & Workbooks(fileToClose).ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
'MsgBox RS
Workbooks(fileToClose).ActiveSheet.Range("A1").EntireRow.Delete
Workbooks(fileKeepOpen).Sheets("DATA").Range("B2:H2").End(xlDown).Clear
Workbooks(fileToClose).ActiveSheet.Range(RS).Copy Destination:=Workbooks(fileKeepOpen).Sheets("DATA").Cells(2, 2)
Workbooks(fileToClose).Close SaveChanges:=False
如果不能正常工作,请告诉我们原因! ;)