2016-06-27 8 views
0

Was ich tun möchte, ist eine Tabelle aus einer anderen Quelle, Navision kopieren, und fügen Sie es in Excel, geben Sie es Format usw. Und ich habe Probleme mit dem Einfügen Teil . Der "Kopier" -Prozess spielt keine Rolle, es wäre schön zu wissen, wie man ihn automatisiert, aber das ist nicht meine Priorität.Einfügen in Excel-Tabelle mit VBA ohne einen definierten Bereich

Was kopiert wird:

- Eine Tabelle mit 7 Spalten und variable Reihen von Navision

Die bestehenden Probleme:

- eine Tabelle einfügen, ohne definiert Reihen ✓ (Danke an Honestorm)
- VBA recognicing nicht die Informationen in der Zwischenablage

Was ich das Hauptproblem denken ist:

- ich vorstellen, es ist in einer „externen Zwischenablage“ kopiert und vba erkennt sie nicht.

Sie sollten wissen, ich bin ein Anfänger in VBA, ich habe nur Hintergrund in C++ und grundlegende MySQL und dies ist das erste Mal, dass ich daran interessiert war, dieses Wissen in täglichen Aufgaben anzuwenden, erleichtern sie. Und ich habe experimentiert.

Die Informationen, die ich über Copy-Paste in VBA gefunden habe, besagt, dass es immer benötigt wird, um einen definierten Bereich zu haben, um es einzufügen, was diese nicht hat. Und ich habe nur Beispiele von Kopieren-Einfügen von Excel-Blättern in andere Excel-Tabellen gefunden. Also ich weiß nicht wie ich anfangen soll.

Was ist die Funktion, um es in der aktiven Zelle aus der "externen Windows" Zwischenablage einzufügen?

+0

Sie könnten 'xlEnd' verwenden, um die letzte Zeile zu erhalten ... – bernie

+0

Danke, das löst einen Teil des Problems. Aber wie definiere ich die Zeilen der Tabelle, die in der Zwischenablage ist? – Dieal

+2

Bitte beachten Sie, dass der Kopiervorgang automatisiert werden kann. Ihrer Frage fehlt die Klarheit. Sie sollten Ihre Frage bearbeiten, um zu zeigen, was Ihre Beispieldaten sind, wohin Sie übertragen möchten und welche Ausgabe Sie erwarten. – skkakkar

Antwort

0

Sie benötigen keinen definierten Bereich. Versuchen Sie den Code unten:

Sub pasteToRange() 
    Dim rng As Range 
    Set rng = Application.InputBox("Pick worksheet and cell", "Choose paste range", "A1", Type:=8) 
    rng.Worksheet.Paste rng.Cells(1, 1) 
End Sub 

Diese Sie können manuell die Position auswählen, in der einfügen, aber Sie können das automatisieren. Das Einfügebit verwendet eine Arbeitsblattfunktion, die aus der Zwischenablage eingefügt wird.