Solved

Why do I get a VBA run-time error when assigning my Excel workbook file ?

Posted on 2014-09-16
10
224 Views
Last Modified: 2014-09-16
Hi All,

I'm trying to save a workbook in my VBA procedure but it returns a Run-time error 9 (Subscript out of range) when it interprets the Set workbook line.

Why is this ? My workbook exists. Does it have to be open first, before saving ?

Here's my code.

   Dim wbMaster As Workbook
   Dim strFileName As String
   
   strFileName = "Master.xlsx"
   Set wbMaster = Workbooks(strFileName)
   
   Application.DisplayAlerts = False
   Application.EnableEvents = False
   wbMaster.SaveAs Filename:=strFileName
   Application.EnableEvents = True
   Application.DisplayAlerts = True

Open in new window


I get the error on the "Set wbMaster..." line.

Any ideas
Toco ?
0
Comment
Question by:Tocogroup
  • 4
  • 3
  • 2
  • +1
10 Comments
 
LVL 26

Expert Comment

by:MacroShadow
Comment Utility
strFileName must include the path too.
0
 
LVL 33

Accepted Solution

by:
Norie earned 250 total points
Comment Utility
Do you actually have a workbook with the name 'Master.xlsx' open when you run the code?
0
 

Author Comment

by:Tocogroup
Comment Utility
Hmmm....even when I enter the full path in strFileName I still get the same error. I've tried saving (and pointing at) the file elsewhere but the same thing happens  eg.    strFileName = "C:\Users\Toco\Master.xlsx"
0
 

Author Comment

by:Tocogroup
Comment Utility
No, the Master workbook isn't open.
0
 
LVL 12

Assisted Solution

by:James Elliott
James Elliott earned 250 total points
Comment Utility
You'll need something like this:

Dim wb as workbook
Dim strFileName as string

strFileName = "Master.xlsx"

set wb = workbooks.open("C:\yourPath\" & strFileName)

Open in new window

0
Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

 
LVL 12

Expert Comment

by:James Elliott
Comment Utility
You can then save when you close.

wb.Close True

set wb = nothing

Open in new window

0
 
LVL 33

Expert Comment

by:Norie
Comment Utility
You can't refer to, or save, a workbook that isn't open.
0
 

Author Closing Comment

by:Tocogroup
Comment Utility
Thank you both. You were spot on with your solutions. Hope you don't mind if I split the points but your replies appeared at the same time.
It is strange because I've used my code before thinking it was the way to 'assign' a workbook object to a variable name. However, on reflection I've most likely used it in conjunction with the On Error Resume statement and never flagged the error.

Toco
0
 

Author Comment

by:Tocogroup
Comment Utility
You don't need the full path if the workbook resides in the same folder as the workbook module you are running the macro from.
0
 
LVL 33

Expert Comment

by:Norie
Comment Utility
It's always best to specify the path.

If you don't VBA will look for the file in the current directory and that won't always be the same directory as the workbook you are running the code from resides.
0

Featured Post

Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

Join & Write a Comment

Convert between Excel file formats (.XLS, .XLSX, .XLSM) with/without macro option David Miller (dlmille) Intro Over this past Fall, I've had the opportunity to see several similar requests and have developed a couple related solutions associate…
Improved? Move/Copy Add-in Replacement - How to avoid the annoying, “A formula or sheet you want to move or copy contains the name XXX, which already exists on the destination worksheet.” David Miller (dlmille)  It was one of those days… I wa…
This Micro Tutorial will demonstrate how to use longer labels with horizontal bar charts instead of the vertical column chart.
This Micro Tutorial will demonstrate how to create pivot charts out of a data set. I also added a drop-down menu which allows to choose from different categories in the data set and the chart will automatically update.

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now