2017-09-17 272 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