VisualBasic VBA für Excel ignoriert Worksheetangabe

Flo0

Lt. Junior Grade
Registriert
Feb. 2011
Beiträge
257
Hallo CBler,

ich befinde mich aktuell in meinem Praxissemester und mir wurde erstmal schön als erste Aufgabe VBA aufgedrückt :D

Es sollen aus einem Excelsheet in mehrer andere Excel je nach "KundenTags" die Stunden übertragen werden.

Soweit habe ich eig alles aber mein eigentliches Problem ist aktuell ist, das im Zielfile Formeln verwendet werden und ich somit kein Datum matchen kann.

Das betroffene Sub sollte die Formlen mit den "echten" Werten ersetzten damit ich mit dem Matchsub drüber kann

Sub OverrideFormula()
Dim objCell As Range
With mTargetWorksheet 'darin hab ich das zielworksheet als mTargetWorkbook.Worksheets(2) gespeichert
For Each objCell in Range ("A1:A40")
If objCell.HasFormula Then If IsNumeric(objCell.Test) Then If Fix (objCell.Value) = objCell.Value
Next
End with
End Sub

Ich hab schon verschiedenste Konstellationen versucht, aber im debugger zeigt er immer das im erste Worksheet (heißt Allgemein) und nicht im zweite (Stundennachweis) der Sub angewendet wird.

Weiß jmd woran das liegen könnte?
Sollte ich im Falschen Unterforum sein bitte verschieben (dachte es gehört eher zu programmieren als zu Office da ich das ganze OOP schreibe)

mfg
Flo
 
In der Zeile "For Each objCell in Range ("A1:A40")" bestimmst du nicht, auf welches Worksheet sich die Range beziehen soll.

Du hast davor zwar ein "With", aber die Range bezieht sich nicht automatisch auf das "With"-Element.

Das die Funktion richtig läuft, sollte ein Punkt ( . ) vor Range reichen.

Also so:
For Each objCell in .Range ("A1:A40")"
 
Zuletzt bearbeitet:
Du bist mein Held!
Darauf wäre ich nie gekommen da ich vorher die Range als ganzes angegeben habe und mir da ein With/Objektdefinitionsfehler gegeben hat.
Viel vielen Dank :)
 
Zurück
Oben