2016-05-18 11 views
0

Ich möchte ein Makro erstellen, das Daten aus einer geöffneten Arbeitsmappe kopiert, die ich per E-Mail erhalte. Der Name der Arbeitsmappe beginnt immer mit "Open Order Monitoring" [...] und endet mit einer Variablen. Ich möchte, dass das Makro die ersten drei Wörter erkennt und dann die richtige Arbeitsmappe zum Kopieren auswählt. Ich möchte das Makro aus der Arbeitsmappe ausgeführt werden die Daten eingefügt in:Kopieren aus einer geöffneten Arbeitsmappe mit Variablennamen in die Arbeitsmappe Ich führe das Makro aus

Sub CopyData() 
Dim Wb1 As Workbook, wb2 As Workbook 

'Copy from open workbook that always start with the name 
'Open Order Monitoring[...]'. I need a variable 
Set Wb1 = XXXXXXXX 'needs a variable here I think 

'Paste into the Workbook I run the macro from (aka ThisWorkbook??) 
Set Wb2 = ThisWorkbook 

'Copy Data from Wb1.Sheet1 to Wb2.sheet2 
Wb1.Sheets(1).Range("A2").Range(.Cells(1, 1), 
.End(xlDown).Cells(1, 39)).Copy wb2.Sheets(2).Range("B5") 

End Sub 

Ich weiß nicht viel über VBA ...

tl; dr - Kopieren von einer geöffneten Arbeitsmappe (mit Variablennamen) in eine andere geöffnete Arbeitsmappe (I führen Sie das Makro aus)

Antwort

1

Blick durch die geöffnete Arbeitsmappe und wählen Sie das eine, die Ihren Bedürfnissen entspricht:

For Each wB in Application.Workbooks 
    If Left(wB.Name, 21) = "Open Order Monitoring" Then 
     Set Wb1 = wB 
     Exit For 
    End If 
Next 

, dass Sie die erste offene Arbeitsmappe sta geben rt mit diesem Namen und setze ihn für dich auf Wb1.

+0

Hallo, vielen Dank für Ihre Antwort. Ich werde es versuchen und Sie wissen lassen, ob es funktioniert. – Bluesector

+0

scheint wie 'Wb1.Sheets (1) .Range (" A2 "). Bereich (.Cells (1, 1), . End (xlDown) .Cells (1, 39)). Kopieren wb2.Sheets (2) .Range ("B5") 'ist nicht richtig. Kannst du mir hier draußen helfen? – Bluesector

Verwandte Themen