Excel 2010 VBAmacros复制/粘贴

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

我查找了一个方法来复制我需要的列(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 

所以,这两种方法的工作,但只有单元格的值是数值(locking?),而不是如果他们依赖另一个单元格的值。 因此,当我尝试从“Sheet1”复制D列到“Sheet2”时,我所得到的只是:

=#REF!

要么

在“Sheet1”中的公式栏中定义的计算,这意味着它将采用“Sheet2”的相关单元格的值。

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

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

要只复制和粘贴值,你应该在代码中使用这样的东西:

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

如果您只是试图将某些单元格的值指定为某些其他单元格的值,并且您不想复制格式,公式等,则只需使用单元格的.Value属性即可:

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

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

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