2017-07-12 57 views
0

我有这张表,其中许多单元格有一个数值(例如:304 550.07),但实际上取决于同一工作表中其他单元格的值。例如:在“公式栏”中可以看到“D1 = C1 + 1”,“2”是D1单元格的实际数值。Excel 2010 VBA宏复制/粘贴

我抬起头的方式来复制我所需要的列(d),并粘贴到另一片,这里的代码(不是我):

Sub sbCopyRangeToAnotherSheet() 
'Method 1 
Sheets("Sheet1").Range("D1:D10").Copy Destination:=Sheets("Sheet2").Range("A1") 

'Method 2 
'Copy the data 
Sheets("Sheet1").Range("D1:D10").Copy 
'Activate the destination worksheet 
Sheets("Sheet2").Activate 
'Select the target range 
Range("A1").Select 
'Paste in the target destination 
ActiveSheet.Paste 
Application.CutCopyMode = False 

End Sub 

所以,这两种方法的工作,但只如果单元格的值是数值(锁定?),而不是依赖于另一个单元格的值。 因此,当我尝试将'Sheet1'的D列复制到'Sheet2'时,我得到的结果是:

=#REF!

OR

在“Sheet 1中”公式栏,这意味着它需要悬垂小区的值“SHEET2”中定义的计算。

所有这一切说,我试图找到一种方法来复制单元格中写入的实际值,而不是导致结果的计算。

PS:真的很抱歉,那些不好的解释,首先tho;) 谢谢。

+1

检查了这一点,因为这是之前https://stackoverflow.com/questions/23937262/excel-vba-copy-paste-values-only-xlpastevalues – krib

回答

1

复制&粘贴只值你应该使用这样的事情在你的代码:

'copy range 
Sheets("Sheet1").Range("D1:D10").Copy 
'paste only values 
Sheets("Sheet2").Range("A1").PasteSpecial xlPasteValues 
+0

回答了几次这正是我需要的!谢谢 ! –

0

如果你只是想分配一些细胞的值是一些其他单元格的值,而你不知道“不想复制格式,公式等,只需用细胞.Value属性:

Sub sbCopyRangeToAnotherSheet() 
    Sheets("Sheet2").Range("A1:A10").Value = Sheets("Sheet1").Range("D1:D10").Value 
End Sub 

这样就避免了所有使用剪贴板作为在传递过程中的中介所固有的问题。

+0

感谢您的知识 –

0
Sheets.Range("D1:D10").SpecialCells(xlCellTypeVisible).Copy Destination:=Sheet2.Range("A1")