2017-09-17 270 views
1

我想從工作表「彙總」行A44(固定具有公式的動態數據的行)複製數據到工作表18(A3行),A1和A2是標題;我有低於VBA代碼,並設法這樣做。我想將數據複製並粘貼爲值(如Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False),以便將數據轉換爲絕對數,任何人如何編輯代碼?excel vba複製行並粘貼到新工作表作爲粘貼值

Sub COPY_SUMMARY2COPYDATA() 

    Set des = Sheet18.Range("a1") 

    With Worksheets("SUMMARY") 
     .Rows(Range("A44").Row).Copy 
     des.Range("A3").Insert Shift:=xlUp 
    End With 

    Application.CutCopyMode = False 

End Sub 
+0

你真的想要插入結果,還是有一個空白單元格/單元格等待Sheet18接收數據?您的示例代碼很難說清楚。 – Joffan

+0

對不起,如果我的解釋不清楚。我有動態數據需要複製到sheet18,所以新的結果將從row3開始添加它們,例如。 row3,row4,row5 ..... sheet18是一張空白紙,除了前兩行是標題 – robin

回答

0

請試試這個:

Sub COPY_SUMMARY2COPYDATA()  

    Dim LastRow As Long 

    LastRow = Sheet18.Cells(Rows.Count,1).End(XlUp).Row + 1 

    Sheets("SUMMARY").Rows("44").Copy   
    Sheet18.Rows(LastRow).PasteSpecial xlPasteValues 

    Application.CutCopyMode = False 

End Sub 

希望這有助於

+0

嗨,感謝,它的工作,但我有動態數據,我如何插入另一個新行,並將它們添加到最後一個複製行4,5,6 .... – robin

+0

好吧,我剛剛編輯我的代碼。謝謝。 –

+0

嗨,是的,現在工作很完美,今天我學到了新東西,非常感謝你! – robin

0

要查找列的第一個空白單元格從下往上一看,向下偏移一行。

使用與.Value2的直接值傳輸來傳遞'數據將轉換爲絕對編號'。這將放棄區域貨幣和日期慣例以及贊成原始基礎價值的公式。

with Worksheets("SUMMARY") 
    with intersect(.usedrange, .rows(44).cells) 
     Sheet18.cells(.rows.count, "A").end(xlup).offset(1, 0).resize(.rows.count, .columns.count) = .value2 
    end with 
end with 
+0

嗨,對不起,我對value2不是很瞭解?你能分享更多細節嗎? – robin

+0

你可以在MSDN上查找.Value2嗎?我在5秒內找到[this](https://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.range.value2(v = office.15).aspx)。你表示你想要*'絕對數字'*;如果要保留日期和/或貨幣信息,請在值轉移後更改爲'.Value'或格式化單元格。 – Jeeped

+0

好的,我檢查一下,謝謝 – robin