Hallo again, i scho wieda
bin grad mal wieder auf was gestoßen, das mich sehr erschüttert hat. habe folgenden code gebaut um aus einem excel sheet dessen überschriftszeile auszulesen, egal ob dieses geöffnet oder geschlossen ist:
Public Function HeaderArray(sDirName As String, ByVal sFileName As String, sTableName As String) As String()
'Debug.Print „TableWorkbench/HeaderArray started“
Dim i As Integer
Dim bCloseable As Boolean
bCloseable = False
If bFileExists(sDirName, sFileName) Then
If bFileAlreadyOpen(sDirName, sFileName) = False Then
Workbooks.Open fileName:=sDirName + sFileName
bCloseable = True
Else
Workbooks(sFileName).Activate
End If
…
so funktioniert der code, aber:
das Problem liegt am Parameter sFileName. wenn ich diesen nicht explizit per ByVal übergebe, dann springt der enthaltene Wert nach der anweisung Workbooks.Open fileName:=sDirName + sFileName auf einen Dateienamen den ich irgendwann zuvor im code mal eingelesen hab (in einem anderen modul).
habs auch schon probiert, das „+“ durch „&“ zu ersetzen, hilft nix.
ich kenn den unterschied zwischen ByVal und ByRef, aber solange ich am übergabeparameter nicht wirklich etwas ändere sondern nur auslese dürfte sich dieser doch ned plötzlich ändern. (bCloseable ist nur ne randerscheinung, damit klar ist, ob die datei nach abarbeiten der function geschlossen werden darf oder eben ned)
merci schonmal wieder für die unterstützung!