2017-03-17 4 views
2

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.

+0

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

+0

sind Ihre Quell- und Zielseiten identisch? mDate ist wirklich in Dest Arbeitsblatt oder ist es ein Fehler? –

+1

@ D.O. - Ich vermute, dass verschiedene Arbeitsmappen mit unterschiedlichen Arbeitsblättern gleich benannt sind. – Jeeped

Antwort

0

Probieren Sie die Variable mDate das gleiche Format Ihrer Datum zu geben:

copyRow = Source.Range("B:B").Find(What:=Format(mDate, "dd-mmm"), LookIn:=xlValues).Row