2009-11-26 6 views
8

Grundsätzlich muss ich ein paar Zahlen aus einer anderen Arbeitsmappe sammeln (die gefunden wird und von einer UserForm geöffnet werden kann, daher sind die Position und die Namen variabel). Ich muss dafür VBA verwenden, da ich auch ein Diagramm mit diesen Daten füllen muss. Ich würde es vorziehen, nicht die andere Arbeitsmappe öffnen zu müssen, um es zu tun, aber wenn es viel einfacher ist, dann ist es in Ordnung.Wie kann ich auf eine andere (offene oder geschlossene) Arbeitsmappe verweisen und Werte in VBA zurückholen? - Excel 2007

Die UserForm ist fertig und funktioniert gut, und ich habe den Code, den ich brauche, um das Diagramm zu füllen, aber ich kann nicht VBA die Daten aus der anderen Arbeitsmappe abrufen und zuweisen die Variablen, die ich brauche.

Irgendwelche Ideen, wie ich VBA dafür bekommen kann? Es würde sehr geschätzt werden.

Danke,

Rob.

Antwort

11

Sie müssen die Datei auf die eine oder andere Weise öffnen, wenn Sie auf die darin enthaltenen Daten zugreifen möchten. Offensichtlich ist ein Weg, um es zu öffnen in Ihrer Excel-Anwendungsinstanz, zB: -

(ungetestet Code)

Dim wbk As Workbook 
Set wbk = Workbooks.Open("C:\myworkbook.xls") 

' now you can manipulate the data in the workbook anyway you want, e.g. ' 

Dim x As Variant 
x = wbk.Worksheets("Sheet1").Range("A6").Value 

Call wbk.Worksheets("Sheet2").Range("A1:G100").Copy 
Call ThisWorbook.Worksheets("Target").Range("A1").PasteSpecial(xlPasteValues) 
Application.CutCopyMode = False 

' etc ' 

Call wbk.Close(False) 

Eine andere Art und Weise zu tun würde es die Excel ADODB Anbieter zu verwenden, eine Verbindung zu öffnen, um Die Datei und dann verwenden Sie SQL, um Daten aus dem Blatt, das Sie wollen, zu wählen, aber da Sie sowieso aus Excel arbeiten, glaube ich nicht, dass es einen Grund gibt, dies zu tun, anstatt nur die Arbeitsmappe zu öffnen. Beachten Sie, dass für die Methode Workbooks.Open() optionale Parameter verfügbar sind, um die Arbeitsmappe als schreibgeschützt usw. zu öffnen.

Verwandte Themen