View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.worksheet.functions
Dave Peterson Dave Peterson is offline
external usenet poster
 
Posts: 35,218
Default 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