ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Worksheet Functions (https://www.excelbanter.com/excel-worksheet-functions/)
-   -   Why is worksheet.usedrange empty? (https://www.excelbanter.com/excel-worksheet-functions/155631-why-worksheet-usedrange-empty.html)

sara

Why is worksheet.usedrange empty?
 
Hi,
I want to copy the data in one worksheet into an other worksheet in a new
workbook.
This is my code:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Worksheets("Sheet1").Activate
ActiveSheet.UsedRange.Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:="C:\NewCopiedBook.xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="",
ReadOnlyRecommended:=False _
, CreateBackup:=False
ActiveWindow.Close

I can see the cells being selected and copied. And a new workbook created
and the cells being pasted. And then the new workbook being closed.
But when I open it there is no data in the cells.

When i debug I can see that the worksheet.usedrange is empty.
The data in the "original" workbook from has just been pasted, probably not
saved. But I tried to save the "original" workbook before the code above.

What am I missing?

/Sara

Dave Peterson

Why is worksheet.usedrange empty?
 
I think excel gets confused with the activeworkbook or activesheet.

In either case, I'd do:

Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim NewWkbk As Workbook

Set NewWkbk = Workbooks.Add(1) 'single sheet

Me.Worksheets("Sheet1").UsedRange.Copy _
Destination:=NewWkbk.Worksheets(1).Range("a1")

NewWkbk.SaveAs Filename:="C:\NewCopiedBook.xls", _
FileFormat:=xlNormal, Password:="", _
WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False

NewWkbk.Close savechanges:=False

'uncomment the next line when you're testing
'Cancel = True
End Sub

Sara wrote:

Hi,
I want to copy the data in one worksheet into an other worksheet in a new
workbook.
This is my code:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Worksheets("Sheet1").Activate
ActiveSheet.UsedRange.Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:="C:\NewCopiedBook.xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="",
ReadOnlyRecommended:=False _
, CreateBackup:=False
ActiveWindow.Close

I can see the cells being selected and copied. And a new workbook created
and the cells being pasted. And then the new workbook being closed.
But when I open it there is no data in the cells.

When i debug I can see that the worksheet.usedrange is empty.
The data in the "original" workbook from has just been pasted, probably not
saved. But I tried to save the "original" workbook before the code above.

What am I missing?

/Sara


--

Dave Peterson

sara

Why is worksheet.usedrange empty?
 

Thanks a LOT!!!


All times are GMT +1. The time now is 02:17 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com