Save as in VBA

KatriinaL

New Member
Joined
Jul 10, 2020
Messages
3
Office Version
  1. 365
Platform
  1. Windows
Hi,

I'm trying to make an my excel macro to save the file with a new name at the end of the script. The script saves the file but not in excel macro enabled format. Could you help me to correct it so that it would save my file as .xlsm? Thanks for your help!

Sub save_as()

Dim workbook_Name As Variant

workbook_Name = Application.GetSaveAsFilename

If workbook_Name <> False Then
ActiveWorkbook.SaveAs Filename:=workbook_Name, FileFormat:=52

End If

End Sub
 

Excel Facts

Excel Can Read to You
Customize Quick Access Toolbar. From All Commands, add Speak Cells or Speak Cells on Enter to QAT. Select cells. Press Speak Cells.
HI & welcome to MrExcel.
What format is it being saved in?
Also are you adding a file extension when you specify the name?
 
Upvote 0
try this

VBA Code:
Dim wb as workbook
 set wb = workbooks("savefile.xlsm")
wb.save
 
Upvote 0
@vmjan02
The OP is trying to SaveAs not save, they are two totally different things.
 
Upvote 0
@Fluff
correct, so I have given the eg to save the file with the name and ext

thanks
 
Upvote 0
But that will only save an existing file, it does not do what the OP is asking for.
 
Upvote 0
Thank you! I'm happy to join the forum. I'm rather new with macros and I spend lot of time googling around to find tips how to make things work.

The macro that I'm working with collects data from several files and after the data is collected I would like to save it with new file name (user specified).
The master excel that I'm working with is in .xlsm format.

I have not added any extension to the file name. I was hoping that I don't have to do that.
 
Upvote 0
You do need to add the file extension.
 
Upvote 0
No need to add the extension, when you select the file name & folder, you can use
VBA Code:
Sub save_as()

Dim workbook_Name As Variant

workbook_Name = Application.GetSaveAsFilename

If workbook_Name <> False Then
ActiveWorkbook.SaveAs workbook_Name & ".xlsm", 52

End If

End Sub
 
Upvote 0
Another option, this will check if the extension has been added.
VBA Code:
Sub save_as()

Dim workbook_Name As Variant

workbook_Name = Application.GetSaveAsFilename

If workbook_Name <> False Then
If Right(workbook_Name, 5) <> ".xlsm" Then workbook_Name = workbook_Name & ".xlsm"
   ActiveWorkbook.SaveAs workbook_Name, 52
End If

End Sub
 
Upvote 0

Forum statistics

Threads
1,215,474
Messages
6,125,025
Members
449,204
Latest member
LKN2GO

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top