如何仅从文件复制值(不复制格式,公式等)

时间:2019-06-18 18:07:31

标签: excel vba

我只想复制没有格式的数据值。我该怎么做?

我下面的现有代码复制了格式。

wbkSource_Feeder.Worksheets(1).Activate
sourceColCount = wbkSource_Feeder.Worksheets(1).Range("A1").CurrentRegion.Columns.Count
For Each Cell In wbkSource_Feeder.Worksheets(1).Range(Cells(1, 1), Cells(1, sourceColCount))
wbkDest.Worksheets("sheet2").Activate
destColCount = wbkDest.Worksheets("sheet2").Range("A1").CurrentRegion.Columns.Count
For Each Cell2 In wbkDest.Worksheets("sheet2").Range(Cells(2, 1), Cells(2, destColCount))
    If Cell = Cell2 Then
        Set DestRng = wbkDest.Worksheets("sheet2").Range(Cells(Cell2.Offset(1, 0).Row, Cell2.Column), Cells(SourceLastRow, Cell2.Column))
        wbkSource_Feeder.Worksheets(1).Activate
       wbkSource_Feeder.Worksheets(1).Range(Cells(Cell.Offset(1, 0).Row, Cell.Column), Cells(SourceLastRow, Cell.Column)).Copy Destination:=DestRng
    Exit For
    End If
Next Cell2

1 个答案:

答案 0 :(得分:1)

使用下面显示的“设置值”方法。这应该为您更有效地工作。

destrng.Value = wbkSource_Feeder.Worksheets(1).Range(Cells(Cell.Offset(1, 0).Row, Cell.Column), Cells(SourceLastRow, Cell.Column))

或者这就是您要做什么的完全方法:

   wbkSource_Feeder.Worksheets(1).Range(Cells(Cell.Offset(1, 0).Row, Cell.Column), Cells(SourceLastRow, Cell.Column)).Copy
   destRNG.PasteSpecial xlPasteValues

一些友好的建议(只是为这个简短的答案添加更多的价值):

  • 定义变量,指定范围(即Dim destRNG as Range)。它将使您see the variable properties拥有智能感知。
  • 我认为您不需要使用Activate,因为大多数代码都指定了工作表。
  • 使用With避免键入很多这些定义。
  • 引用工作表时,请勿使用工作表的显示名称(即“ Sheet2”)。如果某些crazy user更改了标签名称,请尝试引用技术ID。

祝你好运。