When doing a Find operation you should specify all the arguments because they are retained between searches within one excel session [whether manual or coded]. So for example if you used the MatchCase option in a manual find, that would affect your code because you haven't specified not to use it in the code.
Generically, the message "object variable or with block variable not set" when it occurs during program load, means that a necessary DLL file could not be found or is not registered. In the case of the NuGenesis Archive Template Builder, the file NgArMSLObs.dll is the most likely reason for the error. If registering this file does not solve the problem, then use the Process Monitor and/or Dependency Walker tools to identify the required DLLs for the program.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Object variable or With block variable not set
- Article
- 09/15/2021
In this article
An invalid object variable is being referenced. This error can occur for several reasons:
- A variable was declared without specifying a type. If a variable is declared without specifying a type, it defaults to type
Object
. For example, a variable declared withDim x
would be of typeObject;
a variable declared withDim x As String
would be of typeString
. Tip TheOption Strict
statement disallows implicit typing that results in anObject
type. If you omit the type, a compile-time error will occur. See Option Strict Statement. - You are attempting to reference an object that has been set to
Nothing
. - You are attempting to access an element of an array variable that wasn't properly declared.
For example, an array declared as
products[] As String
will trigger the error if you try to reference an element of the array `Object`0. The array has no elements and is treated as an object. - You are attempting to access code within a `Object`1 block before the block has been initialized. A `Object`1 block must be initialized by executing the `Object`3 statement entry point.
Note
In earlier versions of Visual Basic or VBA, this error was also triggered by assigning a value to a variable without using the `Object`4 keyword [`Object`5 instead of `Object`6]. The `Object`4 keyword is no longer valid in Visual Basic .Net.
To correct this error
- Set
Option Strict
toObject`9 by adding the following code to the beginning of the file:
Option Strict On
`
When you run the project, a compiler error will appear in the Error List for any variable that was specified without a type. - If you don't want to enable
Option Strict
, search your code for any variables that were specified without a type [Dim x
instead ofDim x As String
] and add the intended type to the declaration. - Make sure you aren't referring to an object variable that has been set to
Nothing
. Search your code for the keywordNothing
, and revise your code so that the object isn't set toNothing
until after you have referenced it. - Make sure that any array variables are dimensioned before you access them. You can either assign a dimension when you first create the array [`Dim x`6 instead of `Dim x`7], or use the `Dim x`8 keyword to set the dimensions of the array before you first access it.
- Make sure your `Object`3 block is initialized by executing the `Object`3 statement entry point.
See also
- Object Variable Declaration
- ReDim Statement
- With...End With Statement
Collaborate with us on GitHub
The source for this content can be found on GitHub, where you can also create and review issues and pull requests. For more information, see our contributor guide.