2016-04-01 5 views
0

Ich muss mehrere Bereiche in Excel Datei mit VBA10 auswählen und kopieren Sie sie dann in der Zwischenablage und fügen Sie sie dann im Texteditor ein. Ich nehme mehrere Makros auf - jeweils für jeden Bereich. Aber in diesem Fall muss ich zuerst Makro ausführen und dann einfügen, dann zweite und so weiter. Dies ist sehr zeitaufwendig. Gibt es eine Möglichkeit, den ersten Bereich auszuwählen und in die Zwischenablage einzufügen, und den nächsten Bereich in die Zwischenablage einzufügen?Wie Sie mehrere Bereiche auswählen und mit Excel VBA in die Zwischenablage kopieren?

Ich nehme an, ich kann alle Auswahlen in einer Var sammeln und dann einfügen, aber ich spiele nicht mit VBA10 und ich bin mir nicht bewusst, die Objekte, die ich verwenden muss.

Mein Code sieht:

Sub step01_Select_DB_Structure() 
' Select DB structure and copy into memory 
    Range("GF4:GG1000").Select 
    Application.CutCopyMode = False 
    Selection.Copy 
End Sub 

Sub step02_Select_UK_Index() 
' Select UK column 
    Range("GH4:GH1000").Select 
    Application.CutCopyMode = False 
    Selection.Copy 
End Sub 

Sub step03_Select_PK_Index() 
' Select PK column 
    Range("GI4:GI1000").Select 
    Application.CutCopyMode = False 
    Selection.Copy 
End Sub 

Sub step04_Select_FK_Index() 
' Select FK column 
    Range("GJ4:GJ1000").Select 
    Application.CutCopyMode = False 
    Selection.Copy 
End Sub 

Sub step05_Select_Others() 
' Select Other columns 
    Range("GK4:GP1000").Select 
    Application.CutCopyMode = False 
    Selection.Copy 
End Sub 

EDIT:

ich meinem Fall muss ich die Bereiche in Clipboard in der gleichen Reihenfolge nacheinander Paste sein, weil ich Excel für die Erstellung von Formeln und wenn ich versuche, ganze Bereiche einzufügen, ist das Ergebnis nicht gültig.

+0

nicht sicher, dass dies hilft, aber wenn das Ziel ein Texteditor ist, warum nicht in eine * .TXT-Datei und dann mit dem Editor öffnen. Ich denke, es wäre leichter, als mit dem Klemmbrett herumzuspielen. –

+0

Sicher, @PatrickLepelletier, aber ich bin neu in VBA für Excel und ich weiß nicht, wie das geht. Wie auch immer, die Idee ist in Ordnung. Ich versuche, Google darüber zu informieren. 10x für Vorschläge. Eine andere Möglichkeit besteht darin, eine String-Variable zu haben und sie in die Zwischenablage zu senden. – new2ios

Antwort

0

können Sie Union verwenden, um mehrere Bereiche der Bereiche in zu einzelnem Range-Objekt


    Dim rng As Range 
    Set rng = Union(Range("A1:A3"),Range("B6:B9")) 
    rng.Copy 
aber in Ihrem Fall kombinieren Sie sie so aussehen wie Sie einzelnen Flächenbereich, das heißt GF4 kopieren mögen: GP1000. Es besteht keine Notwendigkeit für Union überhaupt

+0

Können Sie ein Beispiel angeben? – new2ios

+0

Ich kann es nicht als eins kopieren. Das sind Formeln und ich muss sie nacheinander haben. Dies funktioniert nicht - es wird als der große Bereich berechnet. Das ist in meinem Fall nicht in Ordnung. – new2ios

Verwandte Themen