将单元格从一个范围复制到另一范围时,删除单元格格式

时间:2018-07-13 14:28:16

标签: excel vba

我的代码,用于将行从一个工作表复制到另一个工作表。

For Each i In Worksheets("BOM").Range(rangeStr)
    Set cell = dataCol.Find(What:=i.Value, LookIn:=xlValues, _
      LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
      MatchCase:=False, SearchFormat:=False)

    If cell Is Nothing Then
        MsgBox "part not found"
    Else
        dataRow = "B" & cell.Row & ":I" & cell.Row
        bomRow = "B" & i.Row & ":I" & i.Row
        Worksheets("datasheet").Range(dataRow).Copy Destination:=Worksheets("BOM").Range(bomRow)
    End If

Next

单元格的格式不同,有些具有红色背景,绿色等。如何只复制单元格中的值而没有格式?

1 个答案:

答案 0 :(得分:2)

您可以为此更改单个.Copy/Destination行,以实现“复制/粘贴特殊-值”。

Worksheets("datasheet").Range(dataRow).Copy
Worksheets("BOM").Range(bomRow).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False

注意:您需要Application.CutCopyMode = False才能取消选择“复印范围”。


但是,您根本不需要Copy。只需像这样将单元格的值设置为其他单元格的值:

Worksheets("BOM").Range(bomRow).Value = Worksheets("datasheet").Range(dataRow)