sparkytech
Board Regular
- Joined
- Mar 6, 2018
- Messages
- 96
- Office Version
- 365
- 2019
I seem to be hitting a roadblock with code that previously worked fine. I have an "Export" button to copy / paste data from a table into another "Export" workbook which is identical, minus some unneeded sheets. I am getting an error on the paste portion of the code, so I created a new blank workbook to test paste the data in, which works fine. Basically, it errors on paste to an identical renamed workbook, but pastes fine to a blank workbook.
Here is my code:
I get an error "Run-time error '1004' PasteSpecial method of Range class failed" on this line:
Any ideas what is wrong?
Here is my code:
VBA Code:
Sub ExportCleanExcel(control As IRibbonControl)
'Exports the information in the master sheet to a chosen excel file; will just move the data without macros or other extra features
Dim FileToOpen As Variant
Dim DestWkb As Workbook
Dim MasBotRow As Long
Dim MasLasCol As Long
'Turn off screen updates to improve performance
Application.ScreenUpdating = False
'Allows user to select a file to export to using the traditional open file window
FileToOpen = Application.GetOpenFilename("All Excel Files (*.xls?), *.xls?", , "Please export file")
'If the user selects cancel when choosing a file to open FileToOpen is set to FALSE
'Using this we can check if a file was actually selected before continuing
If FileToOpen <> False Then
'Find the bottom row and last column of the table on the master sheet
MasBotRow = Sheet1.Cells.Find(What:="*", After:=Range("A1"), LookAt:=xlPart, LookIn:=xlFormulas, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False).Row
MasLasCol = Sheet1.Cells.Find(What:="*", After:=Range("A1"), LookAt:=xlPart, LookIn:=xlFormulas, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, MatchCase:=False).Column
'Open the file that was selected and then set that workbook as DestWkb
Set DestWkb = Application.Workbooks.Open(FileToOpen)
'Copies rows A5 to W to last row and also Z5 to last row on sheet {skips "X:Y"}
Sheet1.Range("A5:W" & MasBotRow).Copy
DestWkb.Sheets(1).Range("A5:W" & MasBotRow).PasteSpecial xlPasteValues
Sheet1.Range("Z5:Z" & MasBotRow).Copy
DestWkb.Sheets(1).Range("X5:X" & MasBotRow).PasteSpecial xlPasteValues
'Turn off alerts to avoid clipboard notices when closing the file
Application.DisplayAlerts = False
'Close the data file
DestWkb.Close True
'Turn back on alerts after closing the file
Application.DisplayAlerts = True
End If
'Turn back on screen updates
Application.ScreenUpdating = True
MsgBox "Export Complete"
End Sub
I get an error "Run-time error '1004' PasteSpecial method of Range class failed" on this line:
VBA Code:
DestWkb.Sheets(1).Range("A5:W" & MasBotRow).PasteSpecial xlPasteValues
Any ideas what is wrong?