2012-05-02 1 views
3

У меня возникли проблемы с получением форматов сводной таблицы для копирования на новый лист. В основном то, что я пытаюсь сделать это:Копирование форматов настольных таблиц

someRange.Copy 
someOtherRange.pasteSpecial xlPasteValues 
someOtherRange.pasteSpecial xlPasteFormats 

В принципе, я хочу точную копию текущего вида на сводной таблицы в новом листе, но я просто хочу, ценности и форматирование (и не может быть подключен к сводной таблице). Выполнение этой процедуры вручную дает правильный результат, но по какой-то причине форматирование не копируется, когда я использую тот же подход через vba ... Мысли?

Update: Точный код по запросу:

Application.CutCopyMode = False 
pivotSheet.Range(pivotSheet.usedRange.Cells(1, 2), pivotSheet.Cells(pivotSheet.usedRange.Rows.Count, pivotSheet.Columns.Count)).Copy 
updatesSheet.Range(updatesSheet.Cells(1, 1), updatesSheet.Cells(pivotSheet.usedRange.Rows.Count, pivotSheet.usedRange.Columns.Count)).PasteSpecial xlPasteValues 
updatesSheet.Range(updatesSheet.Cells(1, 1), updatesSheet.Cells(pivotSheet.usedRange.Rows.Count, pivotSheet.usedRange.Columns.Count)).PasteSpecial xlPasteFormats 
Application.CutCopyMode = False 
+0

'pastSpecial' не так, как вы должны означать, что – Marc

+0

правда, хотя это была просто опечатка ... не фактическая проблема. Спасибо хоть. – Billy

+0

Привет, У меня тоже такая проблема. Любая помощь будет оценена –

ответ

2

испытанный

Option Explicit 

Sub Sample() 
    With Sheets("Sheet1") 
     .Range("H1:I6").Copy 

     With .Range("M7") 
      .PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
      :=False, Transpose:=False 

      .PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ 
      SkipBlanks:=False, Transpose:=False 
     End With 
    End With 
End Sub 

СНАПШОТ

enter image description here

+0

Спасибо, Сиддхарт. Хотя это то же самое решение, которое я пробовал, и по какой-то причине я не получаю форматирование. Хотел бы я знать, почему ... Думаю, я просто отформатирую код в коде. – Billy

+0

Покажите нам «точный» код, который вы используете. –

+0

см. Обновление выше ... плохо согласен с ответом, я согласен, что это то, что он должен * быть. Я просто говорю, что это на самом деле не делает это на моей машине ... – Billy

0

Перед копированием и вставкой вручную начать запись макроса. После того, как вы закончите, прекратите запись и просмотрите записанный код. Вы получите кучу лишних вещей, которые вы можете удалить, но вы также получите правильный синтаксис для выполнения того, что вы пытаетесь сделать.

+0

Уже пробовал - вот как я придумал вышеприведенный код. Когда я делаю это вручную (и записываю), результат правильный. Но когда я фактически запускаю макрос, только значения копируются не в форматы. Спасибо хоть. – Billy

+0

@Billy: я просто попробовал, и он работает :) –

+0

ха-ха, и я уверен, что это работает на вашей машине. Я просто говорю, что это не мое. Вы просто должны мне доверять;) – Billy

Смежные вопросы