Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Since receiving Peter's response to my post on using a fixed length
string variable in a class module I have gotten a lot smarter on Get/ Let pairs and class modules in general (mostly from Chip Pearson's site); but unfortunately I'm stll not smart enough. Below is a trimmed down (only 1 variable instead of 24) version of my code. I don't get any errors, but, I don't get any immediate window output either. In a regular module I have: Option Explicit Sub CreatePOHeader() Dim POHeaders As New Collection Dim i As Integer Dim PH As POHeader Dim PO_ID As String * 10 PO_ID = "LM123145" Set PH = New POHeader PH.PO_ID = PO_ID POHeaders.Add PH, PH.PO_ID For i = 1 To POHeaders.Count Debug.Print POHeaders(i).PO_ID Next i End Sub In my POHeader Class module I have: Option Explicit Private pPO_ID As String * 10 Public Property Get PO_ID() As String PO_ID = pPO_ID End Property Public Property Let PO_ID(value As String) pPO_ID = PO_ID End Property Once I get to the point where I can my 24 fixed length string variables in a class I will loop through a range on my spreadsheet to create a collection, and ultimately use the collection to generate the data file that is needed for the accounting system preprocessor. Thanks Ken Initial Post: I am generating a fixed length text file from my Excel 2003 data for import into an accounting system. I have it working okay by padding the cells with spaces and trimming appropriately before stringing the cell values together for export. I was hoping to simplify my process with a class module with properly lengthed string variables; but, I don't seem to be able to declare fixed length string variable as Public. I have a POHeader class module and i want to have e.g. public PO_ID As String * 10 I can use Dim PO_ID As String * 10 in my regular module and it works; but if I use that in the POHeader class module I can't get to it from the regular module. Is this a limitation of class modules or am I overlooking something or does anyone have any other ideas? Thanks Ken Peter's response: There are various things that can't be declared as public in class/ object modules, and a fixed length string is one of them. A simple workaround is to declare as private and use a [public] property let/get pair to access it. Regards, |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
CLASS MODULE & SIMPLE MODULE | Excel Discussion (Misc queries) | |||
Class Module vs Normal Module | Excel Programming | |||
Variable from a sheet module in a class module in XL XP | Excel Programming | |||
Pass a variable from a class module | Excel Programming | |||
Variable Declaration?? | Excel Programming |