View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
Joergen Bondesen Joergen Bondesen is offline
external usenet poster
 
Posts: 110
Default How do you name a new workbook in VBA

Hi ?

Try this, please.


Option Explicit

Sub NewFile()

Dim FileFullName As String
Dim ShName As String
Dim FileName As String
Dim NewBook As Workbook
Dim sh As Variant

'// Filename with Path
FileFullName = "c:\Allsales01.xls"

'// Sheet Name
ShName = "Test"

FileName = Mid(FileFullName, _
InStrRev(FileFullName, "\") + 1 _
, Len(FileFullName) - InStrRev(FileFullName, "\"))

On Error Resume Next
If Dir(FileFullName) < "" Then
Application.Windows(FileName).Close True
End If
On Error GoTo 0

Set NewBook = Workbooks.Add

With NewBook
'// Properties
.Title = "All Sales"
.Subject = "Sales"
Application.DisplayAlerts = False
'// Save
.SaveAs FileName:=FileFullName
Application.DisplayAlerts = False
End With

'// Only one sheet
For sh = 1 To (ActiveWorkbook.Sheets.Count - 1)
Application.DisplayAlerts = False
Sheets(sh).Delete
Next sh

Application.DisplayAlerts = True
ActiveSheet.Name = ShName

Set NewBook = Nothing

'// Close
Application.Windows(FileName).Close True
End Sub





--
Best regards
Joergen Bondesen


"in-over-his-head-bill" wrote
in message ...
I am trying to create a new workbook out of vba. When I try to name it
something beside the default book1,book2, etc... I get a "can't assign to
read-only property" error. How do I name a new workbook?
My code follows with public variables savetofile and savetorange

Public Sub manageoutput_new()
Dim mywb As Workbook, myws As Worksheet

Set mywb = Workbooks.Add

'* problem line is next
mywb.Name = savetofile
mywb.Activate
Set myws = Worksheets.Add
myws.Name = savetorange


End Sub