Ich benutze im VBA Code für meine Tabelle die Funktion Format (...). Genauer ich setze sie im "Worksheet" im Event Worksheet_Change wie folgt ein:
...
tempStr = ActualYearStr + "/" + ActMonthValStr + "/" + "01" ' also sowas wie "2014/08/01"
Range("B4").Value = Format(tempStr, "yyyy-mm-dd")
...
funktioniert wunderbar ohne Fehler
Jetzt generiere ich eine Sub-Routine. Die steht natürlich in "(Allgemein)". In dieser Sub-Routine setze ich auch wieder die Format Funktion ein. Code:
Sub FormatRange1(ByVal Colum As String, ByVal RangeBegin As Integer, ByVal RangeEnd As Integer, ByVal Format As String)
Dim tempStr As String
Dim tempStr1 As String
Dim tempStr2 As String
Dim intRow As Integer
For intRow = RangeBegin To RangeEnd
tempStr = Colum + CStr(intRow)
tempStr1 = Range(tempStr).Value
tempStr2 = Mid(tempStr1, 7, 4) + "/" + Mid(tempStr1, 4, 2) + "/" + Mid(tempStr1, 1, 2) ' also wieder sowas wie "2014/08/01"
tempStr = Format(tempStr2, "yyyy-mm-dd") 'hier tempStr nur zum Debuggen eingesetzt. Breakpunkt hier.
Next intRow
End Sub
Diese Sub-Routine rufe ich im "Worksheet" im Event Worksheet_Change wie folgt auf:
...
FormatRange1 "B", 4, 34, "Long Date" ' der letzte Parameter wird hier zwar übergeben, aber nicht benutzt
...
Egal wie tempStr2 aussieht, beim Laufenlassen des Codes, näher bei entsprechender Manipulation der Tabelle, gibt's immer folgenden Fehler:

Der Cursor steht dabei auf der Deklaration der Sub-Routine und der Aufruf der Format Funktion in der Subroutine ist blau markiert.
Hab schon alles probiert! Hilfreiche Hinweise willkommen!
|