VBA - Cell Reference Efficiency

gcm48tx

New Member
Joined
Jun 17, 2015
Messages
1
In general, is ActiveCell.Offset(row,col) or Cells(row,col) more efficient in referencing another cell?
 

Excel Facts

Enter current date or time
Ctrl+: enters current time. Ctrl+; enters current date. Use Ctrl+: Ctrl+; Enter for current date & time.
Welcome to the Board!

They don't necessary do the same thing. ActiveCell depends on whatever the active cell is at the time the code is run, where Cells does not.
As a best programming practice, most experienced programmers avoid using things like ActiveCell and Select/Selection/Activate where possible (Selectiing/Activating things WILL actually slow your code down).
Sometimes there is a need for it, but more often than not, it is not needed. You can move around, loop, etc without actually having to select any cells at all.

For example, if you wanted to loop through A1:A10 and return its value to a MsgBox, there are ways you can do it without having to use ActiveCell or Selections, like this:
Code:
Dim c as Range
For each c in Range("A1:A10")
    MsgBox c.Value
Next c
or
Code:
Dim i as Long
For i = 1 to 10
    MsgBox Cells(i,"A").Value
Next i
 
Upvote 0
They are both different
Code:
Range("A1").Select
activecell.Offset(5, 5).Select
will give F6 whereas
Code:
Cells(5,5).Select
will give E5.
That said, it's always better to avoid using Activecell.
 
Upvote 0

Forum statistics

Threads
1,223,247
Messages
6,171,004
Members
452,374
Latest member
keccles

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top