Wechseln zwischen Arbeitsmappen

Ich habe einen code, sucht nach bestimmten Informationen in einer anderen Arbeitsmappe, ist aber, dass die Arbeitsmappe, die den Namen ändert und Formate. Ich bin derzeit mit Arbeitsmappe.öffnen, um es zu öffnen, und wenn ich geben Sie den Speicherort der Datei, es hat einen dynamischen Teil (Sie werden verstehen, auf der Beispiel-code). Das problem ist, dass in der Mitte des Codes, die ich brauche, um zurück zu gehen, um das erste Arbeitsmappe (die der code ausgeführt wird), Mach was, dann gehe wieder zurück zu der Arbeitsmappe, es durchsucht die info auf. Ich habe versucht, es als eine variable mit dim secondfile als string/Arbeitsbuch (beides ausprobiert) und dann versucht, es als die aktive Arbeitsmappe, wenn es "aktiv" wird, so könnte ich mit "secondfile.aktivieren Sie" später, wenn ich brauchte, um zurück zu Ihr gehen, hatte aber kein Glück. Hier ist der code:

dim originalworkbook as workbook
set originalworkbook as this workbook
dim wb as workbook
set wb as Workbooks.Open("C:\Users\abc\Documents\bla bla bla " + Range("D6").Offset(iLoop).Value)
'code here...
originalworkbook.activate
'code here...
'[insert code here to go back to the wb workbook]

Kann ich nicht sagen, es zu öffnen Sie die wb-Arbeitsmappe erneut, denn es würde keinen Sinn machen. Jetzt habe ich die Liste mit 1k+ Daten, der durchsucht wird, in anderen mehr als 30 Dateien. Der name der Datei ist auf die erste Arbeitsmappe, zumindest ein Teil von Ihr, wie Sie im code sehen. Ich benutze die "Range("D6").offset" Teil, um es zu bekommen. Die Sache ist die, es würde zu lange dauern, um den code auszuführen, wenn ich Schloss und öffnete die zweite Arbeitsmappe, jedes mal, also, was ich versuche zu tun, ist die Suche für alle Dinge, die in einer bestimmten Datei und nach der Suche alles, speichern und schließen Sie es. Das ist, warum ich brauchen, um wieder zu dieser Datei...

PS: nicht alle Dateien sind im selben format, das ist, warum ich nicht verwenden "" Arbeitsmappen.aktivieren" oder etwas ähnliches und verwenden Sie dann die gleichen "Range("D6").offset" - Sache, um die Datei zu aktivieren, denn einige sind in .xls und andere sind in xlsx...

  • Sagen Sie gedimmt wb1 as workbook und wb2 als Arbeitsmappe. Verwenden Sie die folgende syntax? wb1.sheets("Tabelle1").Range("A1") = "aaa" -, oder wb2.Sheets("Sheet3").Range("B12") = MyString. Was ich damit sagen will ist, Sie müssen nicht, es zu aktivieren, ändern Sie die Zellen oder aus Ihnen Lesen.
  • stackoverflow.com/questions/10714251/...
  • Danke @TimWilliams, aber ich denke, es gibt keinen anderen Weg, dann verwenden Sie aktive Blatt oder etwas ähnliches... Sie hat mir gerade schon geholfen in diesem makro vor, das Blatt und die Arbeitsmappe Namen ändert sich jedes mal, siehe stackoverflow.com/questions/32127050/vba-find-not-working
  • vielleicht habe ich die Idee. Sie sagen, dass ich nicht brauchen, um zurück auf die erste Arbeitsmappe in einer Zelle ändern Sie es mit der rechten? Ich werde es jetzt versuchen und dir zurückgeben
  • versucht, meine string nicht funktioniert. Ich habe versucht die Definition von zwei Variablen, eine für Arbeitsmappen (wb) und eine für worksheets (ws), und versuchte, Sie zu definieren als thisworkbook/activeworkbook und activesheet/sheet ("name"), dann versucht, mit wb.ws.Bereich.offset.value = "xxxx", die auch versucht wb. sheets (ws) und dann den rest, kein Glück. habe Typenkonflikt auf dieser string
Schreibe einen Kommentar