2017-01-20 2 views
0

In Arbeitsblatt A habe ich eine einzelne Spalte von Zählerständen mit einem statischen benannten Bereich "MeterData". Die erste Zeile des Bereichs ist das Datum (MM/TT/JJ), als die Zähler gelesen wurden. Die restlichen Zeilen enthalten die Zählerstände.Kopieren Sie einen statischen benannten Bereich und fügen Sie ihn in eine Variable Zelle Adresse in einem anderen Arbeitsblatt ein

Unmittelbar über dem Bereich, in der gleichen Spalte ist der Monat Januar bis Dezember, die ich aus einer Dropdown-Liste auswählen.

In Arbeitsblatt B habe ich 12 Spalten mit Überschriften von Januar bis Dezember. Wenn der in Arbeitsblatt A ausgewählte Monat beispielsweise Februar ist, möchte ich, dass der benannte Bereich kopiert und dann unter der Überschrift Februar in Arbeitsblatt B eingefügt wird. Die erste Überschrift (Januar) in Arbeitsblatt B befindet sich in Zelle G4.

Es gibt gute Gründe, warum die Zählerstände nicht direkt in Arbeitsblatt B. eingetragen

Jede Hilfe mit VBA würde sehr geschätzt werden. Ich bin ein echter Neuling und lerne langsam, kurze VBA-Lösungen zu kopieren und anzupassen, weiß aber nicht viel mehr. Danke für deine Zeit und dein Wissen.

Antwort

0

Versuchen Sie dies. Ich habe den Code kommentiert, um zu erklären, was er tut, damit Sie ihn besser auf Ihre Anforderungen abstimmen können.

'Examine cell above 'MeterData' range - store in mth 
mth = Range("MeterData").Offset(-1, 0).Cells(1, 1).Text 

'Set destination column to 20 as default 
paste_column = 20 
'Skip on error as Match might not find the month(?) so will remain at 20 
On Error Resume Next 
'Re-set destination to column using Match to find occurence of 'mth' on row 4 
paste_column = WorksheetFunction.Match(mth, Sheets("WorksheetB").Range("4:4"), 0) 

Remove error skipping 
On error goto 0 

'Copy 'MeterData' range and Paste to WorksheetB, row 5, column found above. 
Range("MeterData").Copy Destination:=Sheets("WorksheetB").Cells(5, paste_column) 

EDIT: Jetzt mit Copy/Paste Special Values ​​

'Examine cell above 'MeterData' range - store in mth 
mth = Range("MeterData").Offset(-1, 0).Cells(1, 1).Text 

'Set destination column to 20 as default 
paste_column = 20 
'Skip on error as Match might not find the month(?) so will remain at 20 
On Error Resume Next 
'Re-set destination to column using Match to find occurence of 'mth' on row 4 
paste_column = WorksheetFunction.Match(mth, Sheets("WorksheetB").Range("4:4"), 0) 

'Remove error skipping 
On Error GoTo 0 

'Copy 'MeterData' range into buffer 
Range("MeterData").Copy 

'Paste to WorksheetB, row 5, column found above. 
Sheets("WorksheetB").Cells(5, paste_column).PasteSpecial Paste:=xlPasteValues 

'Remove highlighter identifying copied area 
Application.CutCopyMode = False 
+0

Humble Dank für Ihre schnelle Antwort. Der Code ergibt sich wie folgt: 1. Navigation zu den Zieladressen funktioniert gut, ebenso die Standardspalte 20, wenn keine Übereinstimmung gefunden wird. 2. Beim Einfügen werden jedoch die Zielzellen ALLE mit ** # REF ** anstelle der Quelldaten gefüllt. 3. Außerdem werden Quellformate eingefügt, die im Zielbereich über die bedingte Formatierung geschrieben werden (jede alternative Zeile ist grau schattiert). Ich hoffe, ich bin klar über die Probleme und begrüße Ihre Vorschläge. –

+0

Ich habe meine ursprüngliche Antwort bearbeitet, um nur die Ergebnisdaten und nicht die ursprünglichen Formeln zu vermitteln. – CLR

+0

Perfekt! Ich danke dir sehr. Ich habe einige Zeit damit verbracht, dies zu knacken und konnte eine genaue Übereinstimmung mit der Problembeschreibung finden. –

Verwandte Themen