Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1264to1268
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Object variable or With block not set

Object variable or With block not set
Ximena
Hallo ihr Lieben
Ich habe schon wieder ein Problem und weiss einfach nicht, woher es kommt!
Ich habe verschiedene Excelmakros in einem File. Wenn ich sie einfach laufen lasse, funktionieren sie einwandfrei. Jetzt will ich die Makros aber aus dem Word starten und da funktionieren alle ausser zwei! Und ich weiss einfach nicht wieso...
Gut, da der Code extrem lang ist, nur ein Ausschnitt:
Dim i As Range 'hab ich ausprobiert, ging aber trotzdem nicht
Dim j
Dim k
Dim l
Dim m
myYearShort = Right(myYear, 2)
myDate = myMonthAsNumber & "-" & myYearShort
i = Workbooks(FNData).Worksheets(1).Cells.Find(myDate).Column
j = Workbooks(FNData).Worksheets(1).Cells.Find("Reaction Time for Severity 1").Row
k = Workbooks(FNData).Worksheets(1).Cells.Find("Reaction Time for Severity 2").Row
l = Workbooks(FNData).Worksheets(1).Cells.Find("Reaction Time for Severity 3").Row
m = Workbooks(FNData).Worksheets(1).Cells.Find("Reaction Time for Severity 4").Row
Set myCopy1 = Workbooks(FNData).Worksheets(1).Cells(j, i)
Set myCopy2 = Workbooks(FNData).Worksheets(1).Cells(k, i)
Set myCopy3 = Workbooks(FNData).Worksheets(1).Cells(l, i)
Set myCopy4 = Workbooks(FNData).Worksheets(1).Cells(m, i)
Cells(2, 3).Value = myCopy1
Cells(3, 3).Value = myCopy2
Cells(4, 3).Value = myCopy3
Cells(5, 3).Value = myCopy4
Okay, meine Makro öffnet ein File (FNData) und kopiert daraus gewisse Zellen (myCopy). Vorher werden die Zellen mit Find gefunden.
Wenn ich die Makro laufen lasse, dann kommt immer in der Zeile
i = Workbooks(FNData).Worksheets(1).Cells.Find(myDate).Column

eine Fehlermeldung! Wenn ich die Zeile mit ' grün mache, geht die Makro normal weiter...
Object variable or With block not set
Ich weiss eben einfach nicht, was das bedeuten soll? Hab ich "i" falsch definiert? Oder was stimmt nicht?
Wenn nötig kann ich auch noch mehr code posten! Wäre froh um Unterstützung!
Liebe Grüsse
Ximena

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Set i =... o.w.T
01.06.2012 14:47:24
Reinhard

Object required
01.06.2012 15:03:20
Ximena
Hallo Reinhard
Danke für deine Antwort. Wenn ich
    Set i = Workbooks(FNData).Worksheets(1).Cells.Find(myDate).Column

schreibe, dann kommt die Fehlermeldung
Object required
Was muss ich jetzt noch ändern?
Liebe Grüsse
Ximena
AW: Object required
01.06.2012 15:06:24
Reinhard
Hallo Ximena,
probiers mal so
Set i = Workbooks(FNData).Worksheets(1).Cells.Find(myDate)
Gruß
Reinhard
AW: Object required
01.06.2012 15:08:59
Ximena
Hallo Reinhard
Ja, dann funktioniert es! Aber ich möchte eben die Variable "i" nicht mit dem Inhalt der Zelle belegen, sondern mit dem Spaltenindex...
Wenn ich deinen Code nehme, dann schreibt er mir für "i" dasselbe wir für "myDate"...
Ich brauche ja "i" als Spaltenindex, weil ich danach
    Set myCopy1 = Workbooks(FNData).Worksheets(1).Cells(j, i)

machen will!
Gibt es nicht auch eine andere möglichkeit?
Liebe Grüsse
Ximena
Anzeige
AW: Object required
01.06.2012 15:12:09
Reinhard
Hallo Ximenia,
i stellt nach .Find die erste gefunde Zelle dar oder halt nix wenn nix gefunden wurde:
If not i is nothing then
Set myCopy1 = Workbooks(FNData).Worksheets(1).Cells(j, i.Column)
Gruß
Reinhard
Yeah! Dankeschön :D
01.06.2012 15:13:19
Ximena
Hallo Reinhard
Ohhh :D es funktioniert :) Dankeschön! Du bist mein Held xD daran hab ich jetzt bestimmt schon einen Tag herumgebastelt...
Ganz viele liebe Grüsse
Ximena
AW: Object required
01.06.2012 15:18:33
EtoPHG
Hallo,
Die .Find Methode macht dort weiter, wo du zuletzt aufgehört hast. Sonst musst du angeben, ab wo du suchen willst, mit named parameter after:=
Den Fehler bekommst immer dann, wenn die Methode nichts mehr findet.
Vorgehen:
Dim rngFnd as Range
Set rngFnd = DeineBereichsRange.Find(what:=DeinSuchBegriff, _
after:=DeineBereichsRange.Cells(1,1))
If rngFnd is Nothing Then
Msgbox "Nix (mehr) gefunden!"
Else
Msgbox "SpaltenIndex:" & rngFnd.Column
End If 
Gruess Hansueli
Anzeige
Danke trotzdem :D
01.06.2012 15:25:39
Ximena
Hallo Hansueli
Danke für deine Antwort. Das sieht aber extrem kompliziert aus :D Ich hab jetzt schon eine Lösung gefunden, ich hänge einfach ein .Column in die Klammer!
danke trotzdem und liebe Grüsse
Ximena
Dann lebst du halt mit der Unsicherheit...
01.06.2012 15:49:05
EtoPHG
dass dein Code nicht immer funktioniert, Ximena
Was du an dem Code kompliziert findest, kann ich nicht nachvollziehen.
Vielleicht mal die XL-Hilfe zur .Find Methode durchlesen ?
Gruess Hansueli

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige