VBA Cell References

This method instructs Excel on what action to take regarding a VBA object, variable, or data reference.

Author: Hala Kiwan
Hala Kiwan
Hala Kiwan

After I embraced my passion and entered the writing realm. Currently, I work as a freelance writer, content creator, and proofreader. In addition, I have an eclectic knowledge of the business world, beginning with finance, accounting concepts, and human resource management. I am an eager, self-motivated, dependable, responsible, and hardworking individual. an experienced team player who is versatile in all demanding circumstances. Additionally, I can work effectively on my own initiative as well as in a collaborative setting. I am good at meeting deadlines and working under pressure.

Reviewed By: Rohan Arora
Rohan Arora
Rohan Arora
Investment Banking | Private Equity

Mr. Arora is an experienced private equity investment professional, with experience working across multiple markets. Rohan has a focus in particular on consumer and business services transactions and operational growth. Rohan has also worked at Evercore, where he also spent time in private equity advisory.

Rohan holds a BA (Hons., Scholar) in Economics and Management from Oxford University.

Last Updated:December 21, 2023

What are VBA Cell References?

An associated code known as a VBA method instructs Excel on what action to take regarding a VBA object, variable, or data reference. 

These are just a few VBA techniques that can be used, along with copying, pasting, and choosing. ("Visual Basic for Applications" or "VBA").

Not all VBA procedures work with every kind of reference. For instance, the "Value" method instructs Excel to save a value in a pertinent cell or an array of values in a pertinent range.

You cannot attach an array to a single cell using the value method if you have placed an array of values in a variable.

Visual Basic for Apps (VBA) is a version of Microsoft's Event-Driven Programming language Visual Basic 6.0 that is incorporated into most desktop Microsoft Office applications. 

Although it is built on pre-.NET Visual Basic, which Microsoft no longer supports or updates, the VBA version in Office is constantly updated to enable new Office capabilities. 

Because of its apparent ease-of-use, Office's enormous installed user base, and significant commercial heritage.

VBA is utilized for expert and end-user programming.

Using dynamic-link libraries, Visual Basic for Applications enables the creation of user-defined functions (UDFs), process automation, and access to Windows API and other low-level capabilities (DLLs). 

The capabilities of older application-specific macro programming languages, like Word's WordBASIC, are superseded and enhanced by it. 

The host program can be controlled in various ways, including modifying user interface elements like menus and toolbars and interacting with unique user forms or dialog boxes. 

The Visual Basic Runtime Library is used by VBA, which is a close relative of Visual Basic, as its name implies. VBA code, however, often cannot be executed independently from the host application. However, VBA may use OLE Automation to control one program from another.

How to Use Object Methods in VBA

Understanding VBA objects is crucial. You must alter the object(s) you work with to accomplish anything useful.

As a result, you must be familiar with VBA objects to become a superb Excel VBA programmer. However, this alone is insufficient.

Additionally, you must know and comprehend how to work with such items. This is when object attributes and object methods come into play:

The operations or activities you carry out on an object are known as methods (by or on the object). On the other hand, the traits or features you may use to describe the item are its properties.

You might imagine the following examples using the analogy between VBA and the English language's parts of speech:

  • Objects that resemble nouns.   
  • Similar to adjectives in terms of properties.
  • Methods as they relate to verbs.

Using only nouns is insufficient to speak effectively in English (without using adjectives and verbs). Similarly, employing only objects won't allow you to create suitable VBA programs.

You may use Methods for the following two primary goals thanks to the ability to define the action that will be executed on an object:

Making an item do something is the first goal and modifying an object's properties is the second goal. For instance, Method Clear Contents clears formulae and values from the relevant cell range using the Clear Contents technique.

You refer to a process by combining the three components listed below:

  1. The name of the applicable VBA object. 
  2.  A solitary dot (.).
  3. The method's name.

In reality, most procedures include several lines that follow this fundamental structure: The object after the dot acts on/with the element before the dot under this statement structure.

Before we proceed to the next phase, one last thing to mention, this is significant since a method may react differently based on the object with which it interacts.

For instance, the syntax and precise behavior of the Delete method might alter somewhat depending on whether it is used with a Worksheet object or a Range object. Excel deletes the pertinent item in both situations as the outcome.

You may control how Excel adjusts the cells that restore any deleted cells by using the Delete function's additional parameter when used on a Range object (I discuss method arguments below).

 Method shows (by default) a dialog box requesting you to authorize the worksheet deletion when interacting with a Worksheet object.

How To Work with Object Method Arguments In VBA

Generally, arguments (also referred to as parameters) let you further specify what a method does with an object. In other words, parameters let you control "how" an action or method is conducted.

In keeping with comparing the parts of speech in VBA and ordinary English, you may consider method arguments similar to adverbs.

In VBA, certain object methods take parameters. Therefore, arguments are more complicated than you would initially believe. In this part, we examine the key details you need to be aware of in relation to this subject.
The Copy Main Worksheet's VBA code may be seen in the following image, which is located in the Visual Basic Editor:

You are already familiar with how to link to object methods, as I discussed previously. The first half of the phrase, "Worksheets ("Object Methods In VBA," is therefore likely what you recognize. Copy") as a guide divided into the three sections shown below:

The Worksheet object with the name "Object Methods In VBA" is mentioned in Item #1 as "Worksheets ("Object Methods In VBA")." 

Item #2: Part #1 above and Part #3 below are separated by a dot (.). The word "Copy" in Item #3 alludes to the worksheet.

The section of the sentence that sets the pertinent method parameters is the second part, "After =Worksheets("Sheet1")." It determines, more specifically, that the duplicated worksheet is positioned after the sheet referred to as "Sheet1". 

Two optional but mutually exclusive parameters for the copy technique (you can only provide one of them) are:

  • Optional Parameter #1: "Before," which identifies the worksheet that the duplicated worksheet is placed in front of (or before).
  • Optional Parameter #2: "After" specifies which page the copied worksheet will be placed on.

In this example, I'm using this argument. To put it another way: "Sheet1" is inserted after the copied worksheet.

Usage of the object methods

The parameters of object methods can be used in a few different ways. Let's look at the most significant methods in which you may define the arguments for an object method in VBA to comprehend this better:

The Copy Main Worksheet macro, seen above, does not give method parameters in the simplest syntax possible. Consider the fundamental syntax not to be all that simple.

Understand why I've modified the Copy Main Worksheet macro to use a different syntax (which I'll explain below). The following version uses the basic syntax to configure the Copy Main Worksheet macro arguments.

Usage

In other words, you have to do the following to identify an argument for a VBA object method:
 Step 1: Use the proper syntax to link to the object method according to the guidelines above. The worksheets in the example mentioned above are "Worksheets ("Object Methods In VBA." Copy").
Step 2: Add a comma (,) after the method name. Place the appropriate argument values in step 3. The initial comma (,) is now all that is left.
 

End sub

The use of a comma (,) is crucial due to the obvious following three syntactic rules:

  • Use commas (,) to divide arguments when there are several ones.
  • Use the default argument order when working with unknown parameters.
  • Use commas (,) to construct empty placeholders for missing arguments when dealing with optional (and unknown) parameters.

There are several situations where it is unnecessary to provide placeholders for missing parameters (for ex., when the argument you omit is at the end of the argument list).

The Worksheet. The copy method accepts the optional but mutually exclusive arguments Before and After.

The Copy Main Worksheet (After) uses only the second argument. The unnecessary Before parameter is replaced with a comma (,) and a blank space in the VBA code seen above.

Arguments

You use the real name of the parameter when specifying it, as suggested by the explanation of this method of referencing the arguments of VBA object properties. In addition, you employ the following syntax in more detail:

Argument Name:=Argument Value in Object. Method. In other words, When using named arguments, you should proceed as follows.

  • Repetition of steps 1 and 2 where the fundamental syntax for specifying object methods' parameters is discussed. In other words, link to the object method, and add a space after the method name.
  • Write down the argument's (formal) name.
  • Insert a colon and an equal symbol (:=).
  • Set the appropriate argument value.

In VBA, you don't need to provide a placeholder for the optional parameters you don't use when you utilize named arguments for object methods. As a result, there is no placeholder for the Worksheets' missing Before parameter in this instance.

You can get away with utilizing the above-described simple syntax and avoid using named parameters (which is optional). However, utilizing named parameters has several benefits over not using them, especially since they make your VBA code easier to read. 

Begin supplying parameters using the fundamental syntax previously explained, and Somewhere in the middle of the list of parameters, switch to named arguments. The other method arguments must be named after you include a named method parameter.

The best way to access an object's methods

There can be more than one related method for a single object. Likewise, numerous ways are available for several VBA objects. There are many methods in the Excel VBA Object Model but try not to feel overpowered!

In reality, you will probably only use a select few VBA object functions repeatedly. One reason is that a single method might connect several VBA objects. In other words: It's doubtful that you'll use specific techniques.

But when using macros, you may sometimes need to look for a certain approach. So let's look at some of the most popular methods you may employ to choose the optimal VBA object approach.

A) How to get a list of methods to appear in the Visual Basic editor

This is most likely the simplest and most practical method for learning about the characteristics accessible for a specific VBA object. However, it only functions if your Visual Basic Editor's Auto List Members feature is turned on.  

Let's return to the coding for the Delete Inactive Worksheets to better understand how you may have the Visual Basic Editor present a list of possible ways. Let's assume that you're entering the phrase "my Work sheet. Delete" and that you're positioned where we need to type the dot.

The VBA shows a set of objects that can be connected to that specific object as soon as you type the dot. As a result, in the example above, the list below appears when you put the dot after my worksheet.

List

Your Visual Basic Editor's Auto List Members setting feature must be turned on to make use of this feature.

B ) Use the Object Browser as a second strategy.

The Object Browser, as stated by Chandoo, is a "useful screen" that helps you to browse and comprehend VBA objects, properties, and functions. For example, in three simple steps, you can use the Object Browser to acquire all of the accessible properties and methods for a certain object:

1. Launch the Object Browser

There are several ways to go to the Object Browser from the Visual Basic Editor:

Option #1: Select the Object Browser button from the VIBEs Standard toolbar.

Launch

Option #2: From the View menu, select "Object Browser."

Option 2

Option 3 is to press the F2 key.

2. Choosing The Excel Library 

All the accessible object libraries are listed in the drop-down menu that appears in the Visual Basic Editor's upper left corner ("All Libraries>"). Select Excel from the drop-down menu by clicking it.

Excel library

Choose the appropriate object class.

There are two areas in the Object Browser: Lists all of the Excel items in the left area. The object now chosen on the left is displayed in the right section's list of accessible attributes and methods.

As a result, find the object you wish to study on the Object Browser's left side and click on it to access its VBA methods.

Researched and authored by Hala Kiwan | LinkedIn 

Reviewed and edited by Parul Gupta | LinkedIn

Free Resources

To continue learning and advancing your career, check out these additional helpful WSO resources: