View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
Wullie Wullie is offline
external usenet poster
 
Posts: 13
Default Naming a new workbook without saving

Thanks for your help Stefan.

Turns out that they user did want the file saved after all, so I can just
revert back to my original code (typical).

"stefan onken" wrote:

hi,
change NewWorkbookName = NewWorkbook.Name
to NewWorkbookFunc = NewWorkbook.Name

another possibility is something like

Dim NewWorkbook
Function MakeWB()
Set NewWorkbook = Workbooks.Add
End Function
Function AccessNewWorkbook()
NewWorkbook.Sheets(1).Range("A1") = Time
End Function

If you need NewWorkbook in macros in different modules, use Public
instead of Dim (see VBA help also).

stefan

On 4 Sep., 12:10, Wullie wrote:
Okay, found my way around that problem, but now I would like my function to
return the newworkbookname as a string

I am calling the function like so

NewWorkbookName = NewWorkbookFunc(1)

and the function now looks like

Function NewWorkbookFunc(wsCount As Integer) As String
' creates a new workbook with wsCount (1 to 255) worksheets
Dim OriginalWorksheetCount As Long
Dim NewWorkbookName As String

Set NewWorkbook = Nothing
If wsCount < 1 Or wsCount 255 Then Exit Function
OriginalWorksheetCount = Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook = wsCount
Set NewWorkbook = Workbooks.Add()
NewWorkbookName = NewWorkbook.Name
Worksheets("Sheet1").Name = "Comparison"
Application.SheetsInNewWorkbook = OriginalWorksheetCount

End Function

but this is passing back an empty string value rather than the filename.

Any solutions?



"Wullie" wrote:
Hi,


Is there a way to create a new workbook and give it a name (for referencing)
without saving the file?


I currently use SaveAs, but don't really need to keep the file.


However, I do need to jump between files so need to be able to reference
this new workbook.


It's probably something simple that I have overlooked, but any help would be
greatly appreciated.


My function is currently


Function NewWorkbookFunc(wsCount As Integer) As Workbook
' creates a new workbook with wsCount (1 to 255) worksheets
Dim OriginalWorksheetCount As Long


Set NewWorkbook = Nothing
If wsCount < 1 Or wsCount 255 Then Exit Function
OriginalWorksheetCount = Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook = wsCount
Set NewWorkbook = Workbooks.Add
NewWorkbook.SaveAs Filename:=curPath & "\Comparison_" & Format(Date,
"yyyy_mm_dd")
Worksheets.Add().Name = "Comparison"
Application.SheetsInNewWorkbook = OriginalWorksheetCount


End Function


Can I just remove the SaveAs line and refer to NewWorkbook when activating
the new workbook?


Thanks- Zitierten Text ausblenden -


- Zitierten Text anzeigen -