There is no standard Excel VBA command or feature called Gorilla; if you mean copying and pasting cells in Excel, use Range.Copy Destination:=... for a normal copy, or assign one range’s .Value to another for values only. If Gorilla refers to a particular app or add-in, its own copy-and-paste workflow may be different.
What “Gorilla” means in a VBA search
VBA is the programming language built into desktop Microsoft Excel, and it provides commands for copying cells, ranges, worksheets, and other workbook content. “Gorilla” is not a reserved VBA word, Excel object, or built-in copy method. It may be a product name, a project name, or simply part of a search for a copy-and-paste macro. The examples below therefore focus on ordinary Excel VBA rather than assuming a particular Gorilla product.
It also helps to distinguish a VBA macro from a worksheet formula. A formula calculates a result in a cell; a macro performs actions, such as placing a range on another sheet. If the task is to copy data repeatedly, a short macro can automate it. For a one-time transfer, Excel’s normal copy-and-paste commands may be simpler.
Basic VBA copy and paste
For a regular cell copy, specify the source range and the destination range. The destination can be a single top-left cell: Excel fills the matching-sized area from that point. In this example, the macro copies A2:C20 from a sheet named Data to A2 on a sheet named Report in the same workbook.
Save a copy of the workbook before running a macro. VBA changes cannot be reversed with Ctrl+Z, even if the change looks like an ordinary paste.
Sub CopyBlock()
Dim sourceRange As Range
Dim destinationCell As Range
' Set the source and top-left destination cells.
Set sourceRange = ThisWorkbook.Worksheets("Data").Range("A2:C20")
Set destinationCell = ThisWorkbook.Worksheets("Report").Range("A2")
' Copy the cells, including their formulas and formatting.
sourceRange.Copy Destination:=destinationCell
End Sub
Paste the procedure into a standard module in the Visual Basic Editor. In Windows Excel, open the editor with Alt+F11, choose Insert > Module, and paste the code. Run it from the editor or use Alt+F8 in Excel, select CopyBlock, and choose Run. If the Developer tab is hidden, enable it through File > Options > Customize Ribbon. On a Mac, the Visual Basic Editor is available from Tools > Macro > Visual Basic Editor; keyboard shortcuts can vary with the keyboard and macOS settings.
What a normal copy includes
Range.Copy Destination:=... behaves much like copying cells in the worksheet. It transfers cell contents and formatting, including formulas, number formats, fills, borders, and many cell-level settings. Relative references in formulas adjust for the new location as they normally do when cells are copied. For example, a formula in B2 that refers to A2 generally becomes a formula referring to the corresponding cell in the destination row when copied down.
This is not the same as copying only the displayed result. If a source cell contains a formula, a normal copy brings the formula across. It also replaces content already in the destination area. Check that the destination range is clear or that overwriting it is intended, especially when the macro is run repeatedly. If the source and destination overlap, the result can be harder to reason about; use separate ranges or a temporary holding range for operations that depend on the original contents.
Copy values without formulas
To preserve the current results but not the formulas, assign the source range’s values directly to a same-sized destination range. This approach does not use the Windows clipboard, and it does not copy cell formatting. In the following example, both ranges are A2:C20 in their respective sheets.
Save a copy before running this macro as well. It overwrites the destination contents and cannot be undone with Ctrl+Z.
Sub CopyValuesOnly()
Dim sourceRange As Range
Dim destinationRange As Range
' Use source and destination ranges with matching dimensions.
Set sourceRange = ThisWorkbook.Worksheets("Data").Range("A2:C20")
Set destinationRange = ThisWorkbook.Worksheets("Report").Range("A2:C20")
' Transfer results rather than formulas or formatting.
destinationRange.Value = sourceRange.Value
End Sub
Because the destination’s existing number formats remain in place, a copied date value might display as a number if the destination is formatted as General. Apply a suitable number format separately if the display matters. Direct value assignment is especially useful for turning formula results into fixed values or for transferring data without changing a carefully designed report layout.
Values with number formats, or formats alone
Sometimes values-only is nearly right, but the destination also needs number formats so dates, percentages, and currency display as intended. You can copy first and then use PasteSpecial. This still uses Excel’s copy mode, so clear it when the macro is finished if you do not want the moving copy border to remain.
Save a copy of the workbook before running this macro. It replaces the destination’s values and number formats, but it does not apply every kind of formatting, such as fills and borders.
Sub CopyValuesAndNumberFormats()
Dim sourceRange As Range
Dim destinationCell As Range
' Set the source and destination anchor.
Set sourceRange = ThisWorkbook.Worksheets("Data").Range("A2:C20")
Set destinationCell = ThisWorkbook.Worksheets("Report").Range("A2")
' Paste values and number formats, then exit copy mode.
sourceRange.Copy
destinationCell.PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Application.CutCopyMode = False
End Sub
For formats alone, use PasteSpecial Paste:=xlPasteFormats instead. That can be useful when a destination already contains correct values but needs the source’s cell appearance. PasteSpecial options are specific: for instance, formats-only does not copy the source formulas, and values-and-number-formats is not a complete copy of all cell settings.
Copying between worksheets or workbooks
To copy between sheets in the same workbook, qualify both ranges with their worksheet names as in the examples. This avoids relying on whichever sheet happens to be active. ThisWorkbook means the workbook containing the VBA code, which is often the safest choice for a macro stored in that workbook. ActiveWorkbook instead refers to the workbook currently active in Excel, so it can point somewhere unexpected if the user switches workbooks.
For a different open workbook, refer to it by its workbook name in the Workbooks collection, and make sure it is open before the macro runs. If the destination workbook is closed, the simple examples here will not open it automatically. A macro that opens or saves other files needs additional decisions: the correct file path, what to do if a file is missing, and whether an existing destination should be overwritten. Avoid relying on unqualified references such as Range("A1"), because they act on the active sheet and can lead to copying from or into the wrong place.
Common problems and practical checks
A macro that stops with a runtime error often has a sheet name or range reference that does not match the workbook. Worksheet names must match exactly, including spaces. Confirm that the expected workbook is open, the named sheets exist, and the destination is not protected in a way that prevents editing. If using direct value assignment, confirm that source and destination ranges have the same number of rows and columns.
- Nothing happens: Check that the macro was actually run, that macros are allowed for the file, and that the source range contains the data you expect.
- The wrong sheet changes: Qualify each range with a workbook and worksheet instead of relying on the active sheet.
- Formulas appear where values were wanted: Use value assignment or PasteSpecial with values rather than a full copy.
- The destination looks different: Direct value assignment does not copy formats; values-and-number-formats does not copy every visual property.
- The copied data is incomplete: Verify the specified range includes all required rows and columns. A fixed range such as A2:C20 does not automatically expand when new records are added.
For a changing data set, determine the real last row or use an Excel table rather than hard-coding a small range. A table can make the intended data boundary clearer, but the correct VBA approach depends on whether the macro should copy the table’s data rows, headers, or calculated columns. Avoid simply selecting cells and using Selection.Copy unless selection is genuinely part of the task; explicit range references are easier to review and less sensitive to clicks made before the macro runs.
Clipboard use, speed, and Excel versions
For a straightforward full-cell copy, Copy Destination:=... is generally clearer than separate Copy and Paste actions because it names the destination directly. Direct assignment of .Value is a good option for values-only transfers and avoids clipboard state. For a large range where formulas or formats must be preserved, a copy operation may be appropriate; choose based on what must be transferred, not on a rule that one method is always fastest.
Excel for Microsoft 365 on Windows supports the examples shown. Basic range copying and value assignment are also available in desktop Excel for Mac, although some Windows-specific automation features and integrations are unavailable or behave differently on Mac. Excel for the web can open workbooks containing VBA but cannot run VBA macros. Use desktop Excel to execute these procedures. If a workbook contains an existing macro, keep it in a macro-enabled file such as .xlsm; saving as a macro-free .xlsx file removes VBA code.
Macro safety and trust
Only run VBA from a source you trust. A copy macro can overwrite cells; other macros can access files, modify workbooks, or perform actions beyond copying. In Windows Excel, macro settings are managed under File > Options > Trust Center > Trust Center Settings > Macro Settings. Options may be restricted by an organization, and enabling all macros broadly is not a safe default. If a workbook came from an unfamiliar email or download, do not enable its code just to see what it does.
Before adapting a macro, inspect which workbook and sheets it references and which destination it writes to. Test on a duplicate workbook with a small sample first. Keep a backup, especially when the macro clears a destination range or runs automatically when a workbook opens. Macros cannot be undone with Ctrl+Z, so a saved copy is the practical recovery route if the result is wrong.
Frequently Asked Questions
Is Gorilla a VBA command in Excel?
No. Gorilla is not a standard Excel VBA keyword or copy method. If you mean an app or add-in named Gorilla, check that product’s documentation; for normal worksheet cells, Excel VBA uses methods such as Range.Copy.
How do I copy and paste a range with VBA?
Set a source Range and use sourceRange.Copy Destination:=destinationCell. Qualify the source and destination with worksheet names so the macro does not depend on the active sheet.
How can I paste values only in VBA?
For same-sized ranges, assign the destination’s .Value property from the source range’s .Value. This copies results rather than formulas and does not transfer the source formatting.
Can I run VBA macros in Excel for the web?
No. Excel for the web can work with many macro-enabled files, but it does not execute VBA. Open the workbook in desktop Excel for Windows or Mac to run VBA.
Why can’t I undo a VBA paste with Ctrl+Z?
Running a VBA macro clears Excel’s normal undo history for its changes. Save a backup before running code, or test the macro on a duplicate workbook.
Related
- Excel Text to Columns: How to Keep Leading Zeros Safely
- Excel Table Dropdown List: Create and Manage Lists
- Excel Tab Shortcut Keys: Move Between Worksheets
Try it: the Column Letter to Number: aA is 27, XFD is 16,384. Converts both ways.
More in VBA & macros
- VBA Basic Error Handling: Patterns, Examples, and TipsVBA basic error handling uses On Error to decide what a procedure should do when a runtime error…
- Excel VBA: Find a Date in a RangeIn Excel VBA, use the Range.Find method to locate an exact date in a range; set its search…
- Excel VBA Find Text in a Range: Code and Examples ExplainedTo find text in an Excel range with VBA, use the range’s Find method and check whether it…
- VBA Convert String to Number: Functions and ExamplesTo convert numeric text to a number in VBA, use a conversion function such as CDbl for decimal…
- Excel VBA Else If: Syntax, Examples, and AlternativesIn Excel VBA, the correct keyword for a chain of conditions is ElseIf, written as one word—not Else…
- Excel VBA: List All Sheets in a WorkbookTo list every sheet in the workbook that contains your VBA code, loop through its Sheets collection and…
Sources: Function behaviour and menu paths: Microsoft Support documentation for Excel. Method & sources
Spotted an error in this guide? Let us know.