2017-05-25 68 views
1

我想將我的數據透視表的值複製到工作表中。我正在嘗試創建一個模板,所以數據透視表的大小會有所不同,我還需要粘貼這些值的地方的電子表格。我已經想出瞭如何(a)通過宏插入剪切單元或(b)粘貼特殊(值),但我不知道如何粘貼特殊(值)和插入(即創建額外的行)。插入剪切單元格並粘貼特殊值

我目前使用簡單:

Sub CutPasteGainLossSales() 
     Range("D3").Select 
     ActiveSheet.PivotTables("PivotTable4").PivotSelect "", xlDataAndLabel, True 
     Selection.Copy 
     Sheets("SchA").Select 
     Range("B12").Select 
     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
      :=False, Transpose:=False 
    End Sub 

OR

Sub testcutpastespecialinsert() 

     ActiveSheet.PivotTables("Principal Amounts Received").PivotSelect "", _ 
      xlDataAndLabel, True 
     Selection.Copy 
     Sheets("SchA").Select 
     Range("B5").Select 
     Selection.Insert Shift:=xlDown 
    End Sub 

是否有某種方式這兩個結合起來?或者是否有其他替代方案?

回答

0

試試這個。您不能剪切和粘貼值,以便您可以清除原始單元格,如果您不需要它們。我認爲,這是罕見的場合選擇是不可能避免的一個(一個肯定的邀請對我來說,被證明是錯誤的...)

Sub testcutpastespecialinsert() 

Dim p As PivotTable 

Set p = ActiveSheet.PivotTables("Principal Amounts Received") 
p.PivotSelect "", xlDataAndLabel, True 
Selection.Copy 

With Sheets("SchA").Range("B5") 
    .Insert Shift:=xlDown 
    .PasteSpecial Paste:=xlPasteValues 
End With 

'these two lines clear the original table 
p.PivotSelect "", xlDataAndLabel, True 
Selection.Clear 

End Sub 
+0

嗨,我試過了,它插入了切分數據透視表,然後粘貼它下面的單元格值。因此,插入剪切單元格工作,並沒有覆蓋我的文本,但下面的粘貼單元格。 我想知道如果可能解決方案是以某種方式獲取數據透視表(行數)的維度,並將多行插入目標工作表,然後粘貼特殊值。 – humblpirate

0

所以,我似乎已經解決了我自己的問題。我使用了一些@SJR的代碼,然後採取了不同的方式(參見上面的代碼問題)。我的解決方案是:將我需要的數據透視表複製到一張工作表中,將其插入到摘要頁面(將所需數據插入下方的任何數據),清除該插入(它保留插入提供的空間),然後再次複製另一個數據透視表並將其粘貼到由原始複製/插入剪切單元提供的空間中。

Sub cutpastespecialinsert() 

Dim p As PivotTable 

Set p = Sheets("SchAPivots").PivotTables("Principal Amounts Received") 
p.PivotSelect "", xlDataAndLabel, True 
Selection.Copy 

With Sheets("SchA").Range("B6") 
    .Insert Shift:=xlDown 
    Sheets("SchA").Select 
    Range("B6").Select 
    ActiveSheet.PivotTables(ActiveCell.PivotTable.Name).PivotSelect "", _ 
     xlDataAndLabel, True 
    Selection.Clear 
End With 

Sheets("SchAPivots").Select 
Range("A2").Select 
ActiveSheet.PivotTables("Principal Amounts Received").PivotSelect "", _ 
    xlDataAndLabel, True 
Selection.Copy 
Sheets("SchA").Select 
Range("B6").Select 
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
    :=False, Transpose:=False 

End Sub 

我目前也在通過計算數據透視表中的行數然後插入該行數來完成此操作。