2017-08-18 2 views
0

Ich habe versucht, einen Makro aufzuzeichnen, der die Werte einer Arbeitsmappe in eine andere Arbeitsmappe eingefügt, aber wenn ich dies tue bekomme ich einen "Laufzeitfehler 9 Index außerhalb des Bereichs"Kopieren und Einfügen von Werten aus einer Excel-Arbeitsmappe in eine andere

Ich bin sicher, das ist nur eine einfache Lösung, und ich bin neu in Makros, so dass jede Hilfe geschätzt werden würde. Hier ist mein Code:

`Sub Refresh() 
' 
' Refresh Macro 
' Update XY Act. Values 2017 
' 
' Keyboard Shortcut: Ctrl+r 
' 
Windows("XY Update File v2.xlsx").Activate 
Selection.Copy 
Windows("Engineering XY Chart v2.xlsx").Activate 
ActiveSheet.Paste 
End Sub 
+0

Es gibt so viel, was getan werden müsste, um dies durchführbar zu machen, mit vielen Fragen dazu, was genau Sie gerade versuchen. Das Beste, was man tun kann, ist Google, "kopiere den Bereich von einer Arbeitsmappe auf eine andere vba" finde einen Code (Und es gibt eine Menge da draußen), der sich nähert, versucht, ihn zu modifizieren und zurück zu kommen, wenn er nicht funktioniert Genauere Angaben zu genau dem, was Sie zu erreichen versuchen. –

+0

Sobald Sie eine Antwort gefunden haben, die für Sie funktioniert, klicken Sie bitte auf das Häkchen neben dieser Antwort, um sie zu akzeptieren. Dadurch können andere Personen mit Ihrem Problem wissen, welche Lösung für Sie funktioniert hat. – Adi219

+0

Sind beide Arbeitsmappen gleichzeitig und in der gleichen Instanz von Excel geöffnet? – YowE3K

Antwort

1

Es ist in der Regel besser, von Activate und Select zu vermeiden.

'variables 
Dim workbook1 As Workbookm, workbook2 As Workbook, filePath1 As String 

filePath1 = ThisWorkbook.Path & "\Engineering XY Chart v2.xlsx" 'assuming filepath is the same as macro workbook 
filePath2 = ThisWorkbook.Path & "\XY Update File v2.xlsx" 'assuming filepath is the same as macro workbook 

'make references to workbooks 
Set workbook1 = Workbook.Open(Filename:=filePath1) 
Set workbook2 = Workbook.Open(Filename:=filePath2) 

'Copies cell A1 from sheet1 of workbook 2 to cell A1 sheet 1 of workbook 1 
workbook1.Sheets(1).Range("A1").Value = workbook2.Sheets(1).Range("A1").Value 
Verwandte Themen