[AccessD] Setting data into and getting data from Named Range s

John Colby jwcolby at ColbyConsulting.com
Mon Jan 23 09:34:22 CST 2006


Lambert,

But I am trying to work with NAMED RANGES, not cell references.

Function Excel_NamedRangeDataGet(xlwb As Excel.WorkWorkbook, strRangeName)
As Variant
Function Excel_NamedRangeDataSet(xlwb As Excel.WorkWorkbook, strRangeName,
varData)

As opposed to

Function Excel_CellData(xls As Excel.Worksheet, nRow As Long, nCol As Long)
As Variant 

Everyone is waxing poetic over how cool Named Ranges are, and I am too - for
working IN a spreadsheet/book directly.  OTOH, no one is offering code for
using them from VBA running out in Access.  That is what I am trying to
figure out.  I have (finally) figured out how to get/set a single cell named
range.  I can even write the same (single) value to a "table" named range
(to initialize to blank for example).  Now I need to do the same with
reading / writing "tables" from/to named ranges that refer to cell ranges
(square areas of a spreadsheet).

I have a worksheet that I need to fill in with data.  The worksheet has
single cell things such as Contractor name, system name, RFD Number etc.  It
then has AREAS that represent multi-column tables in Access.  I need to
write a 7 column table, up to 200 records, into a named range for that area
in the spreadsheet.  I then need to read back that "table" from the
spreadsheet when it comes back from the contractor.  There is another little
two column / 20 record table I need to write out, then read back when the
(same) spreadsheet comes back.

It is just frustrating, the total lack of information out there for using
named ranges from VBA.  I have found code galore for CREATING the named
ranges via VBA, but a deafening silence on USING the named ranges.  Why in
the world would I want to create them if I can't read/write to them?

John W. Colby
www.ColbyConsulting.com 


-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert
Sent: Monday, January 23, 2006 9:41 AM
To: 'Access Developers discussion and problem solving'
Subject: Re: [AccessD] Setting data into and getting data from Named Range s

John,

Here's some more examples. Feel free to optimize any way you wish..

Setting the value of a single cell. This is pretty inefficient as the
workbook is opened, a cell set and the workbook closed. The code could
easily be modified to just set the cell in an already opened workbook, by
passing in the Workbook object...

Sub Excel_SetCellValue(sFileName As String, nWkSheetNumber As Integer,
strCellAddress As String, varData As Variant, Optional strFormat As String =
"")
Dim xlFile As Excel.Application
Dim xlwb As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim oRng As Excel.Range

        Set xlFile = Excel_OpenWorkBookHidden(sFileName)
        With xlFile
            Set xlwb = .Workbooks(GetFileName(sFileName))
            Set xlSheet = xlwb.Worksheets(nWkSheetNumber)
            .Range(strCellAddress) = varData
            Set oRng = .Range(strCellAddress)
            If strFormat & "" > "" Then oRng.NumberFormat = strFormat
            Set oRng = Nothing
            Set xlSheet = Nothing
            Set xlwb = Nothing
        End With
        Excel_CloseWorkBook xlFile, True

End Sub

Retrieving the value of a single cell. A touch more efficient the workbook
being already opened....

Function Excel_CellData(xls As Excel.Worksheet, nRow As Long, nCol As Long)
As Variant
    With xls
        Excel_CellData = Trim(Nz(.Cells(nRow, nCol), ""))
    End With
End Function


Lambert

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of John Colby
Sent: Monday, January 23, 2006 8:12 AM
To: 'Access Developers discussion and problem solving'
Subject: [AccessD] Setting data into and getting data from Named Ranges


I am moving right along with my Excel stuff but now I need to watch as data
is poked into named ranges.  But first I have to discover how to poke stuff
into named ranges.  I am finding a lot of code for setting up the named
ranges but not a lot about actually setting a single value into the (single
cell) range, setting a table of data (from Access) into a named range
(multiple cells), and then of course, reading a value from a single cell
named range, or getting data back out of a named range (multiple cells) into
a table.

Does anyone have example code for this?

John W. Colby
www.ColbyConsulting.com 


--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com
--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com




More information about the AccessD mailing list