sht.Copy after:=WB2.Sheets(WB2.Sheets.Count) 想只copy value怎么写
时间: 2024-12-12 08:16:19 浏览: 9
在Excel VBA中,如果你只想复制单元格的值而不是公式或者其他元信息(如格式、批注等),你可以通过指定 `Copy` 方法的一个选项来进行值的复制。在 `Range.Copy` 方法中,有一个名为 `Value2` 的属性,它会只复制单元格的实际数值内容。
所以,如果你想在 `SHT` 工作表上复制 `A1` 单元格的值到 `WB2` 的最后一张工作表之后,你应该这样写:
```vba
Dim lastRow As Long
lastRow = WB2.Sheets(WB2.Sheets.Count).Cells.SpecialCells(xlCellTypeLastCell).Row
SHT.Range("A1").Copy Destination:=WB2.Sheets(WB2.Sheets.Count).Range(Cells(lastRow + 1, 1), Cells(lastRow + 1, 1)) ' 只复制值
WB2.Sheets(WB2.Sheets.Count).PasteSpecial xlPasteValues ' 或者使用PasteSpecial明确指定粘贴为值
' 如果你想替换目标区域原有的内容,可以省略下面这行,因为默认就是覆盖目的地的值
' WB2.Sheets(WB2.Sheets.Count).Range(Cells(lastRow + 1, 1), Cells(lastRow + 1, 1)).ClearContents
```
上面的代码首先找到 `WB2` 最后一张工作表的最后一行,然后将 `SHT` 的 `A1` 单元格值复制到那个位置,确保只复制值,并且会覆盖目标单元格的原有内容。
阅读全文