Save a document with same filename but different extension in VBA. The filename will be different everytime.
Posted on 2014-09-24
I want to save a .csv file as a xlsx with the same filename. I am using the following code:
Public Function s_as(xlsx As String) As String
s_as = ThisWorkbook.FullName
s_as = Left(s_as, InStrRev(s_as, ".")) & xlsx
The function is being called out in another module using this code:
2 problems & 1 extra enhancement:
1) When I run this macro I get the error: "Run-time error 1004, this extension can not be used with the selected file type. CHange the file extension in the File name text box or select a different file type by changing the Save as type".
2) The following happens if I change every instance of "xlsx" to "xls" in the code examples above:
the code lives in a spreadsheet called "macros.xlsm" that happens to be in the same directory. The code is saving the filename as "macros" instead of the filename of the active worksheet that it is formatting and saving. This will be problematic, especially since I want to eventually transfer this code to the user's "personal.xlsm" in a completely different directory.
TO CLARIFY: i want the code to save as with the same filename, different extension in the same directory of the active worksheet that the code is formatting and saving.
3) extra enhancement: I want another output that will save the resulting .xlsx as the current filename, the text "_PROD", and .xlsx
In all three of the requests, could you explain the usage on how the code will be called out maybe from another module as well as the functions etc.