Ich habe eine Reihe von Daten in Spalte B
wie 06/03/2017
formatiert in einer benutzerdefinierten dd-mmm
Formatierung gibt mir 06-Mar
Ausgabe.Excel VBA Find() mit Datum Ausgabe
Wenn ich manuell Suchen/Ersetzen und suchen nach 06-Mar
und wählen Sie Look In: Values
, es findet es kein Problem, aber das gleiche über VBA funktioniert nicht.
Dim Source as Worksheet, Dest as Worksheet
Dim mDate as String, copyRow as Integer
Set Dest = ThisWorkbook.Sheets("Weekly Updates")
Set Source = ActiveWorkbook.Sheets("Weekly Updates")
mDate = Dest.Range("B2").Text
copyRow = Source.Range("B:B").Find(What:=mDate, LookIn:=xlValues).Row
Ich habe versucht, immer mDate
als Wert und in Formeln und Werte gesucht, aber nichts scheint zu funktionieren.
Die Zeile Debugs auf copyRow = Source.......
aber wenn ich das Suchen/Ersetzen-Fenster an dieser Stelle manuell öffnen, füllt es die Suchleiste mit "06-Mar", und findet den Wert in Spalte B
keine Probleme.
Wenn ich mDate
durch Zeichenfolge ersetzen weiß ich, ist dort, zum Beispiel Find(What:="W/C".....
gibt copyRow
als 1 zurück (weil es der Header dieser Spalte ist).
Irgendwelche Vorschläge, was mir hier fehlt?
EDIT
Um ein paar der Kommentare zu decken unter:
Ja, die Blätter sind die gleichen Namen, nur in verschiedenen Arbeitsmappen (Stammdaten aus mehreren identischen Quellen zu ziehen)
In Bezug auf die Formatierung, bekomme ich die Suchkriterien von einem Datum mit einem wahren Wert von 06/03/2017
formatiert als dd-mmm
, Suche in einer Reihe von Daten als echte Daten 06/03/2017
formatiert auch als dd-mmm
.
Was ist Ihr Ziel? Ihr Beispiel funktioniert für mich. Ich denke, vielleicht haben Sie Ihr Problem nicht vollständig erklärt. Willst du in 'xlFormula' aussehen? – Marc
sind Ihre Quell- und Zielseiten identisch? mDate ist wirklich in Dest Arbeitsblatt oder ist es ein Fehler? –
@ D.O. - Ich vermute, dass verschiedene Arbeitsmappen mit unterschiedlichen Arbeitsblättern gleich benannt sind. – Jeeped