根据格式粘贴值

Paste Value Based on Formatting

我想知道是否可以使用 VBA 来复制单元格的文本而不是单元格的值。

例如,如果单元格 A1 包含值 10000,但格式为千位 .0,是否可以将单元格 B1 设置为等于文本字符串 .0 来自A1?我已经尝试了标准 copy/paste 的所有变体,但都没有成功。

注意:我想允许各种自定义格式的灵活性,例如$、%、千、百万等。我是 运行 Excel 2010。

这对你有用。

Range("A1").Copy
Range("A2").PasteSpecial xlPasteValuesAndNumberFormats

可以用一个公式来实现:

="$"&TEXT(A1/1000,"00.0")  

然后 select、复制、选择性粘贴、值。

要仅复制出现在单元格中的 text,您将不会使用 CopyPastePasteSpecial 方法全部。

相反,您可以根据另一个单元格的文本简单地分配一个单元格的值:

[A2].Value = "'" & [A1].Text

我添加单引号以强制 Excel 将值视为字符串,否则它可能会误解 "General" 格式单元格中的数字格式。