Range[] instead of get_Range()

calendar_today Asked Dec 7, 2012
thumb_up 5 upvotes
history Updated April 14, 2026

Direct Answer

Range() is faster than Range[] By practice we have noticed it the case. But here should define a reason to say so. This shortcut is convenient when you want to refer to an…. This is an advisory response with reference links, ranked #242nd of 303 by community upvote score, from 2012.


The Problem (Q-score 7, ranked #242nd of 303 in the Excel VBA archive)

The scenario as originally posted in 2012

http://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.worksheet.get_range.aspx it says to use the Range property instead of get_Range(Object Cell1, Object Cell2).

They are both doing the same thing, Gets a Microsoft.Office.Interop.Excel.Range object that represents a cell or a range of cells. So, what’s the difference except that this is a method and another is a property? Why are they pointing on use of Range[], what’s the reason for it?

Why this Range / Worksheet targeting trips people up

The question centers on reaching a specific cell, range, or workbook object. In Excel VBA, this is the #1 source of failures after activation events: every property (.Value, .Formula, .Address) behaves differently depending on whether the parent Workbook is explicit or implicit.


The Verified Solution — niche answer (below median) (+5)

Advisory answer — community consensus with reference links

Note: the verified answer below is a reference / advisory response rather than a copy-ready snippet.

Range() is faster than Range[]

By practice we have noticed it the case. But here should define a reason to say so.

This shortcut is convenient when you want to refer to an absolute range. However, it is not as flexible as the Rangeproperty as it cannot handle variable input as strings or object references. So at the end of the day you will still end up referring the long way. Although the shorty provides readability. Hence might as well get it right the first round without more resources spending.

Now why is it slow? In the compiling.

“During run-time Excel always uses conventional notation (or so I’ve been told), so when the code is being compiled all references in shortcut notation must be converted to conventional range form (or so I’ve been told). {ie [A150] must be converted to Range(“A150”) form}. Whatever the truth of what I’ve been told, Visual Basic has to memorize both its compiled version of the code and whatever notation you used to write your code (i.e. whatever’s in the code module), the workbook properties for the file size (the memory used) thus goes up slightly. “

As you see my answer was more in line with VBA. However after some research it is sort of proved that VBA side doesn’t do much slowing down. So you only need to take care of the C# side. @Hans gives you a better answer in C# perspective. Hope combining both that you will get a great performing code 🙂

Here is some finding on the performance of Range[] vs Range() in Excel

enter image description here


When to Use It — vintage (14+ years old, pre-2013)

Ranked #242nd in its category — specialized fit

This pattern sits in the 99% tail relative to the top answer. Reach for it when your scenario closely matches the question title; otherwise browse the Excel VBA archive for a higher-consensus alternative.

What changed between 2012 and 2026

The answer is 14 years old. The Excel VBA object model has been stable across Office 2013, 2016, 2019, 2021, 365, and 2024/2026 LTSC, so the pattern still compiles. Changes that might affect you: 64-bit API declarations (use PtrSafe), blocked macros in downloaded files (Mark-of-the-Web), and the shift toward Office Scripts for web-first workflows.

help
Frequently Asked Questions

This is a below-median answer — when does it still fit?
expand_more

Answer score +5 vs the Excel VBA archive median ~4; this entry is niche. The score plus 7 supporting upvotes on the question itself (+7) means the asker and 4 subsequent voters all validated the approach.

This answer links out — what are the reference links worth following?
expand_more

Read the first external link for the canonical reference, then search this archive for a top-10 entry in the same category — advisory answers are best paired with a ranked code snippet to close the loop.

This answer is 14 years old. Is it still relevant in 2026?
expand_more

Published 2012, which is 14 year(s) before today’s Office 2026 build. The Excel VBA object model has had no breaking changes in that window. Three things to re-test: (1) blocked macros on downloaded files (Mark-of-the-Web), (2) 64-bit API declarations (PtrSafe, LongPtr), (3) any shift toward Office Scripts for web scenarios.

Which Excel VBA pattern ranks just above this one at #241?
expand_more

The pattern one rank above is “Apache-POI sorting rows in excel”. If your use case overlaps, compare both before committing.

Data source: Community-verified Q&A snapshot. Q-score 7, Answer-score 5, original post 2012, ranked #242nd of 303 in the Excel VBA archive. Last regenerated April 14, 2026.