2016-07-13 14 views
1

Die ersten zwei Zeilen, ich habe es Schleifen, um komplette Blätter in eine andere Datei zu kopieren .. Was ist in Ordnung, weil ich die Formatierung aber nicht die Links zurück auf die ursprüngliche Datei kopiert werden soll nur von den Werten nur. Der zweite Teil, der auskommentiert wird, funktioniert, da er nur die Werte kopiert. Aber ich möchte die Formatierung so kopieren, wie es in den ersten beiden Zeilen nur mit den Werten geschieht. Wie kann ich das kombinieren? Ich habe mir andere Beispiele angeschaut und ich kann keine funktionierende Antwort bekommen. DankKopiere Werte von einem Arbeitsblatt in ein anderes Arbeitsblatt

   xlWorksheetSource = xlWorkbookSource.Sheets(sheet.Name) 
       xlWorksheetSource.Copy(After:=xlWorkbookDestination.Worksheets(xlWorkbookDestination.Worksheets.Count)) 


       'xlWorksheetSource.UsedRange.Copy() 
       'xlWorkDestSource = xlWorkbookDestination.Worksheets.Add() 
       'xlWorkDestSource.UsedRange._PasteSpecial(XlPasteType.xlPasteValues, XlPasteSpecialOperation.xlPasteSpecialOperationNone, False, False) 
       'xlWorkDestSource.Name = sheet.Name 

Antwort

1

Dies funktioniert Zellformatierung und Werte einzufügen:

xlWorksheetSource.UsedRange.Copy() 
xlWorkDestSource = xlWorkbookDestination.Worksheets.Add() 
xlWorkDestSource.Range("A1").PasteSpecial xlPasteAllUsingSourceTheme 
xlWorkDestSource.Range("A1").PasteSpecial xlPasteValues 

Wenn Sie nur Werte und Zahlenformatierung Sie dies tun können:

xlWorksheetSource.UsedRange.Copy() 
xlWorkDestSource = xlWorkbookDestination.Worksheets.Add() 
xlWorkDestSource.Range("A1").PasteSpecial xlPasteValuesAndNumberFormats 

aktualisieren

Um mit verbundenen Zellen zu arbeiten, wird dies funktionieren. Es kann einen besseren/schnelleren Weg

xlWorksheetSource = xlWorkbookSource.Sheets(sheet.Name) 
       xlWorksheetSource.Copy(After:=xlWorkbookDestination.Worksheets(xlWorkbookDestination.Worksheets.Count)) 

xlWorkDestSource = xlWorkbookDestination.Worksheets(xlWorkbookDestination.Worksheets.Count) 

For each cel in xlWorkDestSource.UsedRange 
    cel.MergeArea.Value = cel.MergeArea.Value 
Next 

* Bitte beachten Sie, dass ich nicht der Objekte qualifizieren habe, weil Sie in Ihrem Code nicht taten, aber seine definitiv eine bewährte Methode.

+0

Ich habe versucht, die erste und ich bekomme einen Fehler "Dieser Vorgang erfordert die verbundenen Zellen identisch groß sein" – Sirus

+0

@Sirus - das ist ganz anderes Problem. Es wäre nützlich gewesen, zu wissen, dass Sie von Anfang an verbundene Zellen hatten. Ich schlage vor, die verbundenen Zellen zuerst loszuwerden. (Wenn es für die Formatierung ist, versuchen Sie 'CenterAcrossSelection' in der Formatierung für zwei (oder mehr) Zellen in einer Spalte). –

+0

Ich kann die Original-Tabellen nicht ändern .. sie sind so formatiert und können nicht geändert werden – Sirus

Verwandte Themen