56 free macros indexedAll toolsHow to runBlogGitHub ↗

Change Case to UPPERCASE or lowercase

Convert every text cell in your selection to UPPERCASE or lowercase in a single click

windows · mac · Excel 2016+ · Free


What it does

Excel has =UPPER() and =LOWER() functions, but using them means a helper column, fill down, copy, paste-as-values back, delete the helper. The macro skips the dance. Pick UPPERCASE or lowercase, every text cell in your selection gets converted in place. Formula cells are skipped so existing logic isn't corrupted. Numbers and dates are skipped because case doesn't apply to them.

Real-world example

Picture an HR coordinator at a 600-employee logistics company merging two HR systems during an acquisition. The acquired company's employee export has names in UPPERCASE (SMITH, JOHN). The acquiring company's master uses Title Case (Smith, John). Before merging she needs everyone in the same case so dedup and lookup work. The acquired list has 240 employees.

Her current method: helper column with =PROPER(A2) (because UPPER would normalize but lose any naturally-cased entries), fill down, paste-as-values. About 4 minutes plus the 30 seconds her hand wastes navigating the Paste Special menu by mouse. With 6 columns to fix (full name, manager name, location, dept, role, work email), that's 25 minutes for what should be a one-shot operation.

With this macro she selects the 6 columns, runs the tool, picks 2 (lowercase) for the email column first, then 1 (UPPERCASE) for codes. Wait actually she wants Proper Case for names. The macro doesn't do Proper Case (that's a separate tool). She runs it for the email column to lowercase (240 cells in 1 second), and for the location code column to UPPERCASE. For names, she switches to Convert Text to Proper Case. Total elapsed for the case work: about 90 seconds.

On a 240-row 6-column merge prep, the case fixes go from 25 minutes to about 90 seconds. The bigger win is consistency: every column gets the case treatment that fits its data type, no helper-column residue.

How to use

First time? See How to run our tools for the 30-second setup.

  1. Select the range of text cells you want to convert.
  2. Press Alt + F8 (Windows) or Option + F8 (Mac), pick ChangeCaseToUpperOrLower, click Run.
  3. Type 1 for UPPERCASE or 2 for lowercase.
  4. The macro converts every text cell in place. The popup reports modified and skipped counts.

FAQ

Does it convert numbers and dates?

No. The macro only touches cells whose value is a text string. Numbers, dates, and booleans are skipped. So a column with Smith next to 2026-04-28 only gets the name cell converted.

What about Title Case (capitalize first letter of each word)?

Use Convert Text to Proper Case instead. That macro is the third sibling: UPPER, lower, and Proper. They share a common pattern but live in separate tools because most users want exactly one of them at a time.

Will it skip formulas?

Yes. Formula cells are skipped because changing the case of a formula doesn't affect its result and could in some edge cases break case-sensitive function names. The popup reports how many formulas were skipped so you can decide whether to freeze them first with Convert Formulas to Values.

What about international characters (accents, umlauts)?

VBA's UCase and LCase handle Latin-script accents correctly. So café becomes CAFÉ in UPPERCASE and café in lowercase (no change). Non-Latin scripts (Cyrillic, Greek, etc.) also handle correctly. Some edge-case characters in the German ß to SS rule may not transform exactly per Unicode spec, but for typical office data the conversion works.

Can I undo it?

Yes, Ctrl/Cmd + Z right after running undoes every modification in one step. As always, work on a copy of the file before doing a bulk text rewrite. The macro runs entirely offline. Your data never leaves your machine.

Did this tool work for you?

One click. We use this to fix tools that don't work and prioritize what to build next.

Related tools