Is there a way to change a selection of cells which contain relative references to absolute ones without typing “$” in front of the row and column ranges in each cell?
![]() |
There are isolated problems with current patches, but they are well-known and documented on this site. |
SIGN IN | Not a member? | REGISTER | PLUS MEMBERSHIP |
-
Reference Types (2000)
Home » Forums » AskWoody support » Productivity software by function » MS Excel and spreadsheet help » Reference Types (2000)
- This topic has 20 replies, 5 voices, and was last updated 22 years, 9 months ago.
AuthorTopicWSMichaelRead
AskWoody LoungerAugust 28, 2002 at 1:04 pm #375631Viewing 0 reply threadsAuthorReplies-
WSSammyB
AskWoody LoungerAugust 28, 2002 at 1:18 pm #612103Select the text of the cell(s) in the formula and press F4. Subsequent, F4’s will cycle thru all the absolute/relative possibilities. Whatever text is selected, partially selected, or has the insertion point next to it will be changed. This means that if you type =a1 and press F4, the formula becomes =$A$1. Try it, you’ll
it! –Sam
-
WSMichaelRead
AskWoody LoungerAugust 28, 2002 at 1:44 pm #612123Thanks Sammy, that is a pretty neat trick, but for the amount of cells I needed to convert, it was fairly lenthy. This is what I finally did using VBA (there may be a cleaner way to do it, but, hey, it worked!)
Sub ChangeRefType() Dim cell As Range For Each cell In ThisWorkbook.Sheets("OrderGuide").Range("b58:d410") cell.Formula = Application.ConvertFormula(Formula:=cell.Formula, _ fromreferencestyle:=xlA1, toreferencestyle:=xlA1, toabsolute:=xlAbsolute) Next End Sub
-
WSSammyB
AskWoody Lounger -
WSMichaelRead
AskWoody Lounger -
WSJohnBF
AskWoody Lounger
-
-
-
WSrory
AskWoody LoungerAugust 28, 2002 at 2:42 pm #612142Hi Mike,
If you’re doing a lot of cells, you might find this quicker (sorry it’s a bit late!):Sub ChangeRefType() With Sheets("OrderGuide").Range("b58:d410") .Formula = Application.ConvertFormula(Formula:=.Formula, _ fromreferencestyle:=xlA1, toreferencestyle:=xlA1, toabsolute:=xlAbsolute) End With End Sub
FWIW.
-
WSMichaelRead
AskWoody LoungerAugust 28, 2002 at 6:32 pm #612200True indeed, works faster I believe.
A fairly ingenious person could attach it to the right click cell menu via an add-in install…be fairly cool to use the RangeSelection to change all the selected cells to or from absolute or relative! …although I think I mostly find the need to change them to absolute.
-
WSrory
AskWoody LoungerAugust 29, 2002 at 7:36 am #612340Mike,
Good idea – I shall add it to my (already overcrowded) right-click menu….
[later edit]
For the sake of completeness, I added a popup menu with all four options on it:Sub AbsoluteRef() With Selection .Formula = Application.ConvertFormula(Formula:=.Formula, _ fromreferencestyle:=xlA1, toreferencestyle:=xlA1, toabsolute:=xlAbsolute) End With End Sub Sub RelativeRef() With Selection .Formula = Application.ConvertFormula(Formula:=.Formula, _ fromreferencestyle:=xlA1, toreferencestyle:=xlA1, toabsolute:=xlRelative) End With End Sub Sub AbsColumnRef() With Selection .Formula = Application.ConvertFormula(Formula:=.Formula, _ fromreferencestyle:=xlA1, toreferencestyle:=xlA1, toabsolute:=xlRelRowAbsColumn) End With End Sub Sub AbsRowRef() With Selection .Formula = Application.ConvertFormula(Formula:=.Formula, _ fromreferencestyle:=xlA1, toreferencestyle:=xlA1, toabsolute:=xlAbsRowRelColumn) End With End Sub
FWIW.
-
WSJohnBF
AskWoody Lounger -
WSrory
AskWoody Lounger -
WSJohnBF
AskWoody LoungerAugust 29, 2002 at 4:07 pm #612488 -
WSMichaelRead
AskWoody LoungerAugust 30, 2002 at 12:30 am #612672OK, got my addin up and running to make changes to the cell commandbar. My question is this, is there a better way to undo the changes other than resetting the cell commandbar? In other words, if I gave this to my worst enemy who had made some serious and in-depth changes to his right click menu, when he uninstalled my add-in, all of his changes would be lost. Is there a better way not to make any enemies in this fashion?
-
WSMichaelRead
AskWoody Lounger -
WSrory
AskWoody LoungerAugust 30, 2002 at 7:45 am #612738 -
WSMichaelRead
AskWoody Lounger -
WSrory
AskWoody Lounger -
WSMichaelRead
AskWoody Lounger -
WSJohnBF
AskWoody LoungerAugust 31, 2002 at 8:08 pm #612974I suck at coding, however, here’s a WAG on the Reference Toggle with some documentation. Just works from whatever is in the first selected cell. Incompletely tested.
Sub FormulaRefToggle()
Dim strFCFormula As String
Dim intRef As Integer
Dim rngSel As Range
On Error Resume Next
Set rngSel = Intersect(ActiveSheet.UsedRange, Selection).SpecialCells(xlCellTypeFormulas, 7)
If Not rngSel Is Nothing Then
strFCFormula = Cells(rngSel.Row, rngSel.Column).FormulaR1C1
‘ xlAbsolute 1
‘ xlAbsRowRelColumn 2
‘ xlRelRowAbsColumn 3
‘ xlRelative 4
intRef = 1 + (1 – CInt(InStr(strFCFormula, “R[“) > 0) * 2 – CInt(InStr(strFCFormula, “C[“) > 0)) Mod 4
‘MsgBox ActiveCell.FormulaR1C1 & vbLf & intRef
rngSel.Formula = Application.ConvertFormula(Formula:=rngSel.Formula, _
fromreferencestyle:=xlA1, toreferencestyle:=xlA1, toabsolute:=intRef)
End If
End SubIf there is a function in the first cell in the selection, this sets all formulas to use the same function, which is a major danger since there is no undo with VBA. I need to research Application.ConvertFormula. Please improve!
-
WSrory
AskWoody LoungerSeptember 1, 2002 at 5:01 pm #613188John,
The major problem (or at least the first one I ran into) is that references relative to the same row or column don’t have the [ in them – e.g. RC[2] or R[2]C. The latter seems to be trickier to allow for. For the time being, as I’m swamped at work too, I think I’ll stick with my 4 separate macros! Though you could combine them and pass a parameter to the sub from the Tag of the commandbarcontrol….. -
WSkjktoo
AskWoody LoungerSeptember 1, 2002 at 6:20 pm #613192John, How about this version.
First put this at the top of the module to contain the sub that follows:Private Type KeyboardBytes kbByte(0 To 255) As Byte End Type Dim kbArray As KeyboardBytes Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Long Private Declare Function GetKeyboardState Lib "user32" (kbArray As KeyboardBytes) As Long Private Declare Function SetKeyboardState Lib "user32" (kbArray As KeyboardBytes) As Long Const VK_NUMLOCK As Integer = &H90 Const VK_SHIFT As Integer = &H10 Const VK_CONTROL As Integer = &H11 Const VK_MENU As Integer = &H12 'Alt key Const VK_CAPSLOCK As Integer = &H14
Now here’s the sub. Attach it to a button and run it this way. Hold down control & shift and click the button to get $A$1, just the control key and click gives $A1, just the shift key and click gives A$1, and just a plain click gives A1.
Sub RefSwitcher() Dim ShiftState As Long Dim CntrlState As Long ShiftState = GetKeyState(VK_SHIFT) And 128 CntrlState = GetKeyState(VK_CONTROL) And 128 If ShiftState = 128 And CntrlState = 128 Then With Selection .Formula = Application.ConvertFormula(Formula:=.Formula, _ fromreferencestyle:=xlA1, toreferencestyle:=xlA1, toabsolute:=xlAbsolute) End With ElseIf CntrlState = 128 Then With Selection .Formula = Application.ConvertFormula(Formula:=.Formula, _ fromreferencestyle:=xlA1, toreferencestyle:=xlA1, toabsolute:=xlRelRowAbsColumn) End With ElseIf ShiftState = 128 Then With Selection .Formula = Application.ConvertFormula(Formula:=.Formula, _ fromreferencestyle:=xlA1, toreferencestyle:=xlA1, toabsolute:=xlAbsRowRelColumn) End With Else With Selection .Formula = Application.ConvertFormula(Formula:=.Formula, _ fromreferencestyle:=xlA1, toreferencestyle:=xlA1, toabsolute:=xlRelative) End With End If End Sub
Ken
-
-
-
-
Viewing 0 reply threads -

Plus Membership
Donations from Plus members keep this site going. You can identify the people who support AskWoody by the Plus badge on their avatars.
AskWoody Plus members not only get access to all of the contents of this site -- including Susan Bradley's frequently updated Patch Watch listing -- they also receive weekly AskWoody Plus Newsletters (formerly Windows Secrets Newsletter) and AskWoody Plus Alerts, emails when there are important breaking developments.
Get Plus!
Welcome to our unique respite from the madness.
It's easy to post questions about Windows 11, Windows 10, Win8.1, Win7, Surface, Office, or browse through our Forums. Post anonymously or register for greater privileges. Keep it civil, please: Decorous Lounge rules strictly enforced. Questions? Contact Customer Support.
Search Newsletters
Search Forums
View the Forum
Search for Topics
Recent Topics
-
Who knows what?
by
Will Fastie
44 minutes ago -
My top ten underappreciated features in Office
by
Peter Deegan
53 minutes ago -
WAU Manager — It’s your computer, you are in charge!
by
Deanna McElveen
3 hours, 38 minutes ago -
Misbehaving devices
by
Susan Bradley
3 hours, 41 minutes ago -
.NET 8.0 Desktop Runtime (v8.0.16) – Windows x86 Installer
by
WSmeyerbos
21 hours, 17 minutes ago -
Neowin poll : What do you plan to do on Windows 10 EOS
by
Alex5723
17 hours, 1 minute ago -
May 31, 2025—KB5062170 (OS Builds 22621.5415 and 22631.5415 Out-of-band
by
Alex5723
19 hours, 51 minutes ago -
Discover the Best AI Tools for Everything
by
Alex5723
20 hours ago -
Edge Seems To Be Gaining Weight
by
bbearren
10 hours, 9 minutes ago -
Rufus is available from the MSFT Store
by
PL1
18 hours, 11 minutes ago -
Microsoft : Ending USB-C® Port Confusion
by
Alex5723
1 day, 21 hours ago -
KB5061768 update for Intel vPro processor
by
drmark
1 day, 3 hours ago -
Outlook 365 classic has exhausted all shared resources
by
drmark
41 minutes ago -
My Simple Word 2010 Macro Is Not Working
by
mbennett555
1 day, 16 hours ago -
Office gets current release
by
Susan Bradley
1 day, 19 hours ago -
FBI: Still Using One of These Old Routers? It’s Vulnerable to Hackers
by
Alex5723
3 days, 9 hours ago -
Windows AI Local Only no NPU required!
by
RetiredGeek
2 days, 18 hours ago -
Stop the OneDrive defaults
by
CWBillow
3 days, 10 hours ago -
Windows 11 Insider Preview build 27868 released to Canary
by
joep517
3 days, 20 hours ago -
X Suspends Encrypted DMs
by
Alex5723
3 days, 22 hours ago -
WSJ : My Robot and Me AI generated movie
by
Alex5723
3 days, 22 hours ago -
Botnet hacks 9,000+ ASUS routers to add persistent SSH backdoor
by
Alex5723
3 days, 23 hours ago -
OpenAI model sabotages shutdown code
by
Cybertooth
3 days, 23 hours ago -
Backup and access old e-mails after company e-mail address is terminated
by
M W Leijendekker
3 days, 12 hours ago -
Enabling Secureboot
by
ITguy
3 days, 19 hours ago -
Windows hosting exposes additional bugs
by
Susan Bradley
4 days, 7 hours ago -
No more rounded corners??
by
CWBillow
4 days, 3 hours ago -
Android 15 and IPV6
by
Win7and10
3 days, 17 hours ago -
KB5058405 might fail to install with recovery error 0xc0000098 in ACPI.sys
by
Susan Bradley
4 days, 20 hours ago -
T-Mobile’s T-Life App has a “Screen Recording Tool” Turned on
by
Alex5723
4 days, 22 hours ago
Recent blog posts
Key Links
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Want to Advertise in the free newsletter? How about a gift subscription in honor of a birthday? Send an email to sb@askwoody.com to ask how.
Mastodon profile for DefConPatch
Mastodon profile for AskWoody
Home • About • FAQ • Posts & Privacy • Forums • My Account
Register • Free Newsletter • Plus Membership • Gift Certificates • MS-DEFCON Alerts
Copyright ©2004-2025 by AskWoody Tech LLC. All Rights Reserved.