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")