Einzelnen Beitrag anzeigen

barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#1

VBA Parameterübergabe

  Alt 13. Apr 2007, 15:56
Hallo,

ich habe das Problem mich mit VBA-Makroprogrammierung auseinandersetzen zu müssen dazu Folgendes:

 FI.init filteredWorkbook Ich übergebe meinem Klassenmodul FI den Benutzerdefinierten Datentyp filteredWorkbook, der im aktuellen Klassenmodul ABLAUF folgender Maßen definiert ist:

Private filteredWorkbook As TWorkbook Bei der Übergabe ByRef meines filteredWorkbooks wird dieses mit Daten gefüllt und verändert:

Delphi-Quellcode:
Private myWorkbook As TWorkbook
...
Public Sub init(config As FileConfig, ByRef aWorkbook As TWorkbook)
Dim tmpWorkbook As TWorkbook
Dim row As Integer
Dim col As Integer
    
    tmpWorkbook = aWorkbook
        
    myWorkbook = tmpWorkbook
        
    // Hier wird die Variable verändert
    initSheets
    aWorkbook = myWorkbook
    
    row = UBound(myWorkbook.sheets(1).cells, 1)
    col = UBound(myWorkbook.sheets(1).cells, 2)
    
    row = UBound(aWorkbook.sheets(1).cells, 1)
    col = UBound(aWorkbook.sheets(1).cells, 2)
    
End Sub
InitSheets kopiert den Inhalt eines ExcellWorkbooks in die benutzerdefinierten Variable MyWorkbook. In Init Sheets verändere ich myWorkbook:

Delphi-Quellcode:
    ReDim Preserve myWorkbook.sheets(iSheet).rowHeader(rows)
    ReDim Preserve myWorkbook.sheets(iSheet).ColumnHeader(cols)
    
    ReDim Preserve myWorkbook.sheets(iSheet).cells(rows, cols)
MyWorkbook wird in der Anzahl der Reihen und Spalten angepasst. Wenn ich aber nach dem Aufruf von InitSheets row und col kontrolliere sind beide unverändert auf dem vorherigen Wert...

Kann jemand helfen? Ich weiß nicht mehr weiter...
Gruß,

Barnti
  Mit Zitat antworten Zitat