Change Case to UPPERCASE or lowercase
Convert every text cell in your selection to UPPERCASE or lowercase in a single click
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.
- Select the range of text cells you want to convert.
- Press Alt + F8 (Windows) or Option + F8 (Mac), pick
ChangeCaseToUpperOrLower, click Run. - Type 1 for UPPERCASE or 2 for lowercase.
- 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
Clean Phone Numbers
Strip dashes, spaces, parens, and dots from a column of phone numbers so every entry is just digits
Clear All Comments
Delete every cell comment in your selection in one shot, with a confirmation prompt before deletion
Compare Two Columns
Highlight every cell in two columns whose value does not appear in the other column, in one click.