Solved

Why do I get a Run-time error 91 when debugging a cell value in my VBA Excel application ?

Posted on 2014-11-07
9
222 Views
Last Modified: 2014-11-07
Hi Experts,

I have a VBA application which loops through the cells in a column in Excel. Each cell is tested for a particular value - ="N". When I run the application it seems to ignore this test and carries on regardless.

When debugging the code I get a 'Run-time error 91 Object variable or With block variable not set ' message, even though I've Set the sheet object.

I've attached the code below.

   Dim wbInput              As Workbook
   Dim wsInputSource   As Worksheet
   Dim sFileName          As String

   On Error Resume Next
   
' OPEN THE REQUIRED WORKBOOK
   
   sFileName = Application.GetOpenFilename
   Set wbInput = Workbooks.Open(sFileName)

' TEST IF NEW BUSINESS
   
            Application.ScreenUpdating = False

            Set wsInputSource = wbInput.Sheets("Manchester")

            For r = 2 To 50
               If wsInputSource.Cells(r, 2).Value = "N" Then
                     If wsInputSource.Cells(r, 3) <> 0 Then
                        wsInputSource.Cells(r, 4).value = "New"
                     End If
               End If
            Next r
         

...etc etc....

Open in new window



Any ideas
Thanks
Toco
0
Comment
Question by:Tocogroup
  • 3
  • 3
  • 3
9 Comments
 
LVL 85

Accepted Solution

by:
Rory Archibald earned 250 total points
ID: 40427990
Start by commenting out the On Error Resume Next. It's generally a bad idea to just stick that at the top of a routine.
0
 
LVL 24

Assisted Solution

by:Phillip Burton
Phillip Burton earned 250 total points
ID: 40428038
1. Where does it breakdown? Which line number?
2. I'm assuming that the workbook you are opening actually has a spreadsheet called "Manchester".
0
 
LVL 24

Expert Comment

by:Phillip Burton
ID: 40428040
Line 20 doesn't use ".Value" - I don't know if that is significant or not.
0
 

Author Comment

by:Tocogroup
ID: 40428052
Ok......I've commented out the On Error line.

It's now returning a 'Run-Time error 1004 Application-defined or object-defined error' on the sFilename = Application.GetOpenFilename statement. I'm prompted to enter a password, which I do, and then it falls over.

Yes, the sheet 'Manchester' exists.
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 24

Expert Comment

by:Phillip Burton
ID: 40428060
Does it work if the workbook is not password protected?
0
 
LVL 85

Expert Comment

by:Rory Archibald
ID: 40428078
Are you sure it's on that line and not the next one? GetOpenFileName shouldn't prompt you for a password as it's not opening anything.
0
 

Author Closing Comment

by:Tocogroup
ID: 40428113
Thanks both,

I managed to get it through the open file procedure. The problem was the sheet filename: the creator had addeda space to the end of Manchester.
I'm going to split the points on this one because I've learned two things:
1. Comment out the On Error statement when debugging.
2. Always check the sheet name for hidden characters

Much appreciated
Toco
0
 
LVL 85

Expert Comment

by:Rory Archibald
ID: 40428126
#1 should be "Don't just put 'On Error Resume Next' at the top of a procedure. Use it only where required.

:)
0
 

Author Comment

by:Tocogroup
ID: 40428410
Thanks Rory. Point taken
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

A little background as to how I came to I design this code: Around 5 years ago I designed an add-in that formatted Excel files to a corporate standard, applying different cell colours and font type depending on whether the cells contained inputs,…
Freeze panes is an option within all variants of Excel to enable parts of a sheet to remain stationary when the cursor is in another part of the sheet. This is a very useful feature which is overlooked or under used.
This Micro Tutorial demonstrates how to create Excel charts: column, area, line, bar, and scatter charts. Formatting tips are provided as well.
Many functions in Excel can make decisions. The most simple of these is the IF function: it returns a value depending on whether a condition you describe is true or false. Once you get the hang of using the IF function, you will find it easier to us…

863 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

26 Experts available now in Live!

Get 1:1 Help Now