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?
![]() |
Patch reliability is unclear. Unless you have an immediate, pressing need to install a specific patch, don't do it. |
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, 8 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
-
*Some settings are managed by your organization
by
rlowe44
2 hours, 12 minutes ago -
Formatting of “Forward”ed e-mails
by
Scott Mills
4 hours, 26 minutes ago -
SmartSwitch PC Updates will only be supported through the MS Store Going Forward
by
PL1
4 hours, 50 minutes ago -
CISA warns of hackers targeting critical oil infrastructure
by
Nibbled To Death By Ducks
13 hours, 51 minutes ago -
AI slop
by
Susan Bradley
13 hours, 1 minute ago -
Chrome : Using AI with Enhanced Protection mode
by
Alex5723
15 hours, 7 minutes ago -
Two blank icons
by
CR2
41 minutes ago -
Documents, Pictures, Desktop on OneDrive in Windows 11
by
ThePhoenix
1 day ago -
End of 10
by
Alex5723
1 day, 2 hours ago -
Single account cannot access printer’s automatic duplex functionality
by
Bruce
36 minutes ago -
test post
by
gtd12345
1 day, 8 hours ago -
Privacy and the Real ID
by
Susan Bradley
22 hours, 50 minutes ago -
MS-DEFCON 2: Deferring that upgrade
by
Susan Bradley
14 hours, 56 minutes ago -
Cant log on to oldergeeks.Com
by
WSJonharnew
1 day, 13 hours ago -
Upgrading from Win 10
by
WSjcgc50
46 minutes ago -
USB webcam / microphone missing after KB5050009 update
by
WSlloydkuhnle
4 hours, 20 minutes ago -
TeleMessage, a modified Signal clone used by US government has been hacked
by
Alex5723
2 days, 4 hours ago -
The story of Windows Longhorn
by
Cybertooth
1 day, 16 hours ago -
Red x next to folder on OneDrive iPadOS
by
dmt_3904
2 days, 6 hours ago -
Are manuals extinct?
by
Susan Bradley
23 minutes ago -
Canonical ditching Sudo for Rust Sudo -rs starting with Ubuntu
by
Alex5723
2 days, 15 hours ago -
Network Issue
by
Casey H
2 days, 2 hours ago -
Fedora Linux is now an official WSL distro
by
Alex5723
3 days, 3 hours ago -
May 2025 Office non-Security updates
by
PKCano
3 days, 4 hours ago -
Windows 10 filehistory including onedrive folder
by
Steve Bondy
3 days, 6 hours ago -
pages print on restart (Win 11 23H2)
by
cyraxote
2 days, 7 hours ago -
Windows 11 Insider Preview build 26200.5581 released to DEV
by
joep517
3 days, 8 hours ago -
Windows 11 Insider Preview build 26120.3950 (24H2) released to BETA
by
joep517
3 days, 8 hours ago -
Proton to drop prices after ruling against “Apple tax”
by
Cybertooth
3 days, 15 hours ago -
24H2 Installer – don’t see Option for non destructive install
by
JP
52 minutes ago
Recent blog posts
Key Links
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.