Skip to content
The Spreadsheet Desk

How to Fix IMPORTRANGE Not Working in Google Sheets

Freelancers, solo operators, and very small business owners using Google Sheets as a practical business operating system.

Updated May 28, 20266 min readEditorial Team
On this page
The short answer

A broken IMPORTRANGE is almost always an access problem or a range-string problem, not a formula bug. Make a copy of the file, write the symptom in one sentence, then use the diagnosis table below to find the failing layer. The two most common fixes: click Allow access if the destination file was never granted permission, and re-check the source URL and the exact quoted range after a tab or column was renamed.

If IMPORTRANGE cannot pull data from the source spreadsheet, do not start by rewriting formulas. That is how a small spreadsheet problem becomes a business-system problem. Preserve the file, isolate the failure, and change only the smallest part you can prove is wrong.

IMPORTRANGE depends on two things working at once: the destination file having permission to read the source, and the quoted range string still pointing at data that exists. The fix depends on which of those broke.

If this is one of several things breaking in the same file, use the broader Google Sheets troubleshooting guide first, then come back to this specific repair path.

First make a copy and name the symptom#

Make a duplicate or version-safe copy before risky edits. You do not need a perfect backup ritual; you need one clean rollback point before you touch formulas, protected ranges, source lists, imported data, or dashboard ranges.

Then write the symptom in one sentence: what changed, where it changed, and what the sheet should have done instead. That sentence keeps you from treating every spreadsheet issue like a formula issue.

Use this diagnosis table before changing anything#

Identify the layer that failed before you edit; do not jump from symptom to fix because a forum answer sounded plausible. Read the middle column first, then apply the safest fix in the right column.

What you seeLikely causeSafest first fix
#REF! with access promptDestination file has not been allowed accessClick allow access if this is the correct source
Imported range is blankWrong tab, empty cells, or wrong range stringTest a tiny known range first
Import broke after renameTab/range reference changedUpdate the quoted range string
Dashboard slow or flakyToo many chained importsCreate a staging tab and reduce dependencies
Cannot access sourceSharing permissions changedConfirm source file permissions

Test the smallest visible part before editing anything#

Now narrow the failure to one place. Test a tiny known range first, such as a single cell or one row from the source. If access is the problem, check one blocked cell and confirm the source file's sharing. If the import is blank, check the exact tab name and range string before assuming the data is gone.

This is where most rushed fixes go wrong: they edit the final visible output while the actual failure is upstream. For formula issues, the guide on finding which cell is breaking a Google Sheets formula is the safer path.

Check whether a copied template changed the sharing#

Shared templates add another layer: other people may be using filters, protected ranges, or views that change what you see without changing the underlying data. Before you delete rows or overwrite formulas, check whether you are looking at a filtered view, a locked range, or a copied template with inherited settings.

If the problem appeared right after copying a template, pause and compare it with a clean original. The copy process itself may have changed sharing, validation, protected ranges, or references — any of which can quietly break an import. See how to make a copy of a Google Sheets template without breaking it before rebuilding the file from scratch.

Keep errors visible while you repair#

When official Google documentation defines a function or feature, use that behavior as the boundary. A workaround is fine only if you understand what it is bypassing.

Don't hide the error you're trying to fix

Wrapping an import in IFERROR can make a sheet calmer for users, but it also hides the broken cell you actually need to repair. Keep a temporary debug copy where errors are visible. Masking errors is the last polish step, not the first troubleshooting move.

A safe repair sequence for business files#

A safe repair sequence runs in order. Skipping a step is how a one-cell fix turns into a rebuild.

  1. Duplicate the file.
  2. Reproduce the issue in one place.
  3. Isolate the input or setting that broke.
  4. Make one edit.
  5. Test with a realistic sample row.
  6. Document the change.

If you cannot reproduce the problem in a small test, do not make a large change to the live sheet. For formulas specifically, start with the plain-English Google Sheets formulas guide if the syntax itself is unclear. Guessing at functions while a live template is broken is slower than learning the one pattern you need.

How to stop the same import breaking again#

Prevention is mostly structure. Keep raw data separate from formulas. Keep formulas separate from dashboard outputs. Keep source lists for dropdowns on a clearly named tab. Protect formula cells, but make input cells obvious. Add a small notes tab that explains which ranges are safe to edit.

The goal is not to make the sheet impossible to break. The goal is to make the next break obvious enough that a tired operator can fix it without opening ten tabs and hoping.

What to do next#

If the sheet is business-critical, make the smallest repair in a duplicate, test it with realistic sample data, and apply it to the live version only after the symptom is gone. If the issue turns out to be formula-related, continue with how to fix formula parse error in Google Sheets or how to fix VLOOKUP returning N/A in Google Sheets depending on what you see.

Spreadsheet confidence comes from a repeatable repair loop: preserve, isolate, test, fix, document. That loop beats almost every one-line answer pasted from a random thread.

Questions people ask

Why does IMPORTRANGE show #REF! with an access prompt?
The destination file has not been allowed to read the source yet. Click Allow access if it is the correct source spreadsheet. If access was previously granted and later revoked, confirm the source file's sharing permissions again.
Why is my imported range blank?
Usually the formula points at the wrong tab, empty cells, or a wrong range string. Test a tiny known range first — a single cell or one row — to confirm the import works at all before assuming the data is gone.
My import broke right after someone renamed a tab. What now?
Renaming a tab or moving a column changes what the quoted range string points at. Re-check the source URL and update the exact quoted range so it matches the current tab name and columns.
My dashboard got slow and flaky after I added more imports. Is that normal?
Too many chained imports make a sheet fragile and slow. Pull the imported data into one staging tab, then have your dashboard read from that tab instead of importing the same source in many places.

We aim to keep this accurate and date-stamp it when product steps change. We don't claim hands-on product testing we haven't done, and we'll always point to the free, native route first. How we work.

Keep going

Next steps that fit what you're working on.