Ich habe das meiste selbst herausgefunden, aber der Teil, der mich aufhält, ist das Einfügen der bedingten Formatierung.Excel - Kopieren aus einer anderen Arbeitsmappe mit intakter bedingter Formatierung
Ich möchte in der Lage sein, eine Arbeitsmappe geöffnet zu haben, führen Sie ein VBA-Skript aus, um eine andere Arbeitsmappe zu öffnen, kopieren Sie einen Bereich daraus, und fügen Sie das dann in der ursprünglichen Arbeitsmappe ein.
Die meisten Erfolg hatte ich habe, ist die Makroaufzeichnung und damit dies geschieht: Mit dem Original, Ziel Arbeitsmappe geöffnet ...
- Öffnen Sie die Quelle Arbeitsmappe
- Copy Bereich A1: X105
- Schließen Quelle Arbeitsmappe
- Einfügen in Arbeitsblatt dem Titel "Temp" in Ziel Arbeitsmappe
Das Problem besteht darin, dass die Quellarbeitsmappe bedingte Formatierung enthält. Wenn die Quellarbeitsmappe vor dem Einfügen in die Zielarbeitsmappe geschlossen wird, wird die bedingte Formatierung nicht eingefügt.
Entweder muss ich einen Weg finden, die Daten mit der bedingten Formatierung einzufügen, oder ich muss in der Lage sein, zurück in die Zielarbeitsmappe zu wechseln, bevor die Quellarbeitsmappe geschlossen wird. Dies ist ein Prozess, der mehrmals mit verschiedenen Zielarbeitsmappen ausgeführt werden muss. Daher kann der VBA-Code nicht auf einen Arbeitsmappendateinamen für das Ziel verweisen. Die Quellarbeitsmappe hat jedoch immer den gleichen Pfad.
Beim Durchsuchen der Website konnte ich nur Lösungen finden, die den Pfad für beide Arbeitsmappen angegeben. Diese
ist, was ich habe jetzt:
Sub CopyData()
Application.DisplayAlerts = False
Workbooks.Open filename:="source.xlsx", _
UpdateLinks:=3
Range("A1:X105").Select
Selection.Copy
ActiveWindow.Close
Sheets("Temp").Select
ActiveSheet.Paste
Application.DisplayAlerts = True
End Sub
Ich nehme an, was ich umsetzen müssen, um in das ist das Ziel Arbeitsmappe als eine Variable zu deklarieren. Kann jemand damit helfen?
Es klingt also so, als müsste das Skript aus der Quellarbeitsmappe in die Zielarbeitsmappe eingefügt werden, bevor die erste Arbeitsmappe geschlossen wird. Dies ist kein Problem, auch wenn Sie den Arbeitsmappennamen nicht angeben, wenn Sie ihn als Arbeitsmappenvariable festlegen. Bitte geben Sie den Code an, den Sie bisher entwickelt haben, um weitere Unterstützung zu erhalten. – nbayly
'Sub Copydata() Application.DisplayAlerts = False Workbooks.Open Dateiname: = "source.xlsx", _ UpdateLinks: = 3 Range. ("A1: X105") Wählen Sie Selection.Copy Active. Schließen Blätter ("Temp"). Wählen Sie ActiveSheet.Paste Application.DisplayAlerts = True End Sub' – Robby
Entschuldigung. Ich weiß nicht, wie man vorformatierten Text im Kommentar macht. – Robby