Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

seltsame Fehlermeldung - object required

Forumthread: seltsame Fehlermeldung - object required

seltsame Fehlermeldung - object required
16.01.2025 13:20:13
Theo
Hallo zusammen,

in einem meiner Tools muss ich die Nummernformate von einer bestimmten Zelle in verschiedene Spalten übertragen. Warum auch immer, war das im Koventionellen Weg (FRNG.numberformat = "yyy-mm-dd") extrem langsam.
Deshalb hatte ich die Geschwindigkeit erhöht, indem ich den Inhalt der Spalte in einen array geladen hatte, dann im Array das Zahlenformat geändert hatte und am Schluss das Array wieder zurückgeschrieben hatte.
Das ging bis gestern auch ganz gut. Seit heute bekomme ich allerdings die Fehlermeldung "object required", der Code hängt dabei an dieser Stelle:
v(n, 1).NumberFormat = StrFormat
In der variablen ws ist das (richtige) worksheet, Col ist beim Fehler 1, das Format ist "yyyy-mm-dd"

Sub ApplyNumberformat(ws As Worksheet, Col As Integer, StrFormat)

Dim LastRowInCol As Long
Dim FRng As Range
Dim v As Variant
Dim n As Long

LastRowInCol = 42387 ' im echten Macro ermittele ich das per funktion dynamisch
Set FRng = ws.Range(ws.Cells(1, Col), ws.Cells(LastRowInCol, Col))

v = FRng
For n = LBound(v, 1) To UBound(v, 1)
v(n, 1).NumberFormat = StrFormat
Next

ws.Range(ws.Cells("2:" & Col), ws.Cells(LastRowInCol, Col)) = v
End Sub


Wie gesagt, lief das bis gestern bei vielen Usern einwandfrei. Seit heute tritt der Fehler auf. Hat jemand eine Idee?

Danke
Theo
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: seltsame Fehlermeldung - object required
16.01.2025 13:35:06
Yal
Hallo Theo,

es ist eher, dass es gestern funktioniert hat, was ein Rätzel ist. Ein Array ist ein lokale Variable innerhalb von VBA. Es speichert Werte, aber keine Formatierung.
Ein Zahlenformat kann man mehrere Zellen gleichzeitig vergeben und somit "schneller" sein:

Sub ApplyNumberformat(ws As Worksheet, Col As Integer, StrFormat)

Range(ws.Cells(2, Col), ws.Cells(42387, Col)).NumberFormat = StrFormat
End Sub

VG
Yal
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18