I have already a defined name for a particular column in my worksheet.
How to display a cell value by its defined name?
I’ve tried these:
Public Sub Test()
Dim R As Range
Set R = ThisWorkbook.Names("SomeName").RefersToRange
MsgBox CStr(R.Value)
End Sub
but run-time error occured “Type Mismatch” (error code: 13).
What’s wrong with the code?
What is the actual data type of RefersToRange.Value?
The documentation says that RefersToRange returns the Range object, but it seems differ with the Range object returned by ActiveCell, because I’ve no problem with the following code:
MsgBox CStr(ActiveCell.Value)
I’ve been using Excel 2003
RefersToRange does return a Range object. I assume you’re getting your Type Mismatch on the Cstr line. If the range has multiple cells, the Value property returns a Variant array. Do this in the Immediate Window (Control+G in the VBE).
The CStr function can’t handle an array argument and that’s why you’re getting that error. You can get to a particular cell in the range, like the first cell, like this
Or loop through them as Fink suggests.