LinkBack Thread Tools Search this Thread Display Modes
Prev Previous Post   Next Post Next
  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default Replace a spreadsheets named cells/ranges with exact cell addr

It sounds like the longer code does what your shorter code already does.

Is that not the case?

--
Regards,
Tom Ogilvy

"ExcelMonkey" wrote in message
...
This converts the name of the range into the range behind it. Hence I

still
get the entire range in the formula. For example when I run it I get
=Sheet1!$A$1:$G$1 in B1. I am running this in my Personal Workbook do I
changed all your references to Thisworkbook to ActiveWorkbook.

EM

Sub ReplaceNamesWithRefs()
' Loop counter
Dim i As Integer
Dim szWhat As String
Dim szReplace As String
Dim wks As Worksheet
Dim rRng As Range

i = 1

'On Error Resume Next
' Loop through all names in the workbook
Dim nm As Name
For Each nm In ActiveWorkbook.Names
'Store each name object in a variable
szWhat = ActiveWorkbook.Names(i).Name
'In case we find cells that match the defined name's name
For Each rRng In Cells.SpecialCells(xlCellTypeConstants)
If rRng.Value = szWhat Then GoTo NameMatch
Next rRng
'Store each names RefersTo value in a variable that trims the "="
sign
szReplace = Replace(ActiveWorkbook.Names(i).RefersTo, "=", Empty)

'================================================= ==================
' Loop through the sheets collection, replacing the names

with
' the actual range references
For Each wks In ActiveWorkbook.Worksheets
wks.Cells.SpecialCells(xlCellTypeFormulas) _
.Replace szWhat, szReplace, xlPart, , True
Next wks

'================================================= ===================
NameMatch:
i = i + 1
Next nm
End Sub

"JLXL via OfficeKB.com" wrote:

In a standard module: Not perfect, so have a backup:

'================================================
Option Explicit

Sub ReplaceNamesWithRefs()
' Loop counter
Dim i As Integer
Dim szWhat As String
Dim szReplace As String
Dim wks As Worksheet
Dim rRng As Range

i = 1

On Error Resume Next
' Loop through all names in the workbook
Dim nm As Name
For Each nm In ThisWorkbook.Names


' Store each name object in a variable
szWhat = ThisWorkbook.Names(i).Name


' In case we find cells that match the defined name's

name
For Each rRng In Cells.SpecialCells(xlCellTypeConstants)
If rRng.Value = szWhat Then Goto NameMatch
Next rRng


' Store each names RefersTo value in a variable that

trims the
"=" sign
szReplace = Replace(ThisWorkbook.Names(i).RefersTo, "=", Empty)


'
================================================== =================
' Loop through the sheets collection, replacing the names

with
' the actual range references
For Each wks In ThisWorkbook.Worksheets

wks.Cells.SpecialCells(xlCellTypeFormulas) _
.Replace szWhat, szReplace, xlPart, , True

Next wks
'
================================================== =================


NameMatch:

i = i + 1

Next nm

End Sub





 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Named Cells (Ranges) Derek Hart Excel Discussion (Misc queries) 4 November 3rd 08 07:59 AM
Unable to replace cell references with Named ranges lhim2 Excel Discussion (Misc queries) 0 January 28th 08 04:13 PM
Extracting or Referencing named cells in multiple spreadsheets Bonehead Excel Discussion (Misc queries) 3 November 27th 06 07:18 PM
Replace a spreadsheets named cells/ranges with exact cell address. David McRitchie Excel Discussion (Misc queries) 0 September 28th 05 08:59 PM
Replace a spreadsheets named cells/ranges with exact cell address! ExcelMonkey Excel Programming 0 September 16th 05 12:21 PM


All times are GMT +1. The time now is 05:56 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"