基于格式的粘贴值

时间:2015-02-19 21:48:28

标签: excel excel-vba formatting excel-2010 paste vba

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

例如,如果单元格A1包含值10000,但格式为千{•1}},是否可以将单元格B1设置为等于A1中的文本字符串$10.0?我已经尝试了标准复制/粘贴的每个变体都没有成功。

注意:我希望允许各种自定义格式的灵活性,例如: $,%,千万,百万等。我正在运行Excel 2010.

3 个答案:

答案 0 :(得分:1)

这对你有用。

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

答案 1 :(得分:1)

可以用公式实现:

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

然后选择,复制,选择性粘贴,值。

答案 2 :(得分:1)

要仅复制单元格中显示的文本,您根本不会使用CopyPastePasteSpecial方法。

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

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

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