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

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
   sFileName = Application.GetOpenFilename
   Set wbInput = Workbooks.Open(sFileName)

            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
Who is Participating?
Rory ArchibaldConnect With a Mentor Commented:
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.
Phillip BurtonConnect With a Mentor Director, Practice Manager and Computing ConsultantCommented:
1. Where does it breakdown? Which line number?
2. I'm assuming that the workbook you are opening actually has a spreadsheet called "Manchester".
Phillip BurtonDirector, Practice Manager and Computing ConsultantCommented:
Line 20 doesn't use ".Value" - I don't know if that is significant or not.
Train for your Pen Testing Engineer Certification

Enroll today in this bundle of courses to gain experience in the logistics of pen testing, Linux fundamentals, vulnerability assessments, detecting live systems, and more! This series, valued at $3,000, is free for Premium members, Team Accounts, and Qualified Experts.

TocogroupAuthor Commented:
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.
Phillip BurtonDirector, Practice Manager and Computing ConsultantCommented:
Does it work if the workbook is not password protected?
Rory ArchibaldCommented:
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.
TocogroupAuthor Commented:
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
Rory ArchibaldCommented:
#1 should be "Don't just put 'On Error Resume Next' at the top of a procedure. Use it only where required.

TocogroupAuthor Commented:
Thanks Rory. Point taken
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.