我有一个代码,用于选择工作簿A中特定工作表中的所有数据(代码中的名称为' fn')并将其复制到工作簿B中的特定工作表中。我想做什么是只有PASTE VALUES,即粘贴从复制表复制的值,同时保持/转换(转换)过去工作表中表格的格式,这是我的代码 -
Set copySheet = copyBook.Sheets(fn) 'Points to the sheet in the raw data file
Set pasteBook = ThisWorkbook 'Sets the file where we are supposed to paste to as the template file
Application.DisplayAlerts = False
Set pasteSheet = pasteBook.Sheets("Transaction") 'Points to the Transaction sheet on the template
lastRow = copySheet.Cells(Rows.Count, 1).End(xlUp).row 'Computes the last row on the raw data file
'Copies raw data to tab/sheet in template
copySheet.Activate
Application.ScreenUpdating = False
For column = 1 To 27
For row = 2 To lastRow
cp = copySheet.Cells(row, column)
pasteSheet.Cells(row + 211, column).Value = cp
Next
Next
Application.ScreenUpdating = True
copyBook.Close 'Closes the raw data file
End If
注意 - 我真的更喜欢我只是对上面的代码进行一些小改动,而不是完全改造另一个代码。谢谢!
答案 0 :(得分:0)
cp = copySheet.Cells(row, column)
pasteSheet.Cells(row + 211, column).Value = cp
更改为
copySheet.Cells(row, column).Select
Selection.Copy
pasteSheet.Cells(row + 211, column).Select
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Application.CutCopyMode此处设置为false只会使您的程序退出复制模式。
答案 1 :(得分:0)
试试这个。您也可以跳过激活工作表,因为您只是复制数据。
Application.ScreenUpdating = False
For column = 1 To 27
For row = 2 To lastRow
pasteSheet.Cells(row + 211, column) = copySheet.Cells(row, column).Value
Next
Next
答案 2 :(得分:0)
用这个更新你的循环:
For column = 1 To 27
For row = 2 To lastRow
copySheet.Cells(row, column).copy Destination:=pasteSheet.Cells(row + 211, column)
Next
Next