Excel 基于格式粘贴值

Excel 基于格式粘贴值,excel,formatting,excel-2010,paste,vba,Excel,Formatting,Excel 2010,Paste,Vba,我想知道是否可以使用VBA复制单元格的文本而不是单元格的值 例如,如果单元格A1包含值10000,但格式为千元$10.0,是否可以将单元格B1设置为A1中的文本字符串$10.0?我尝试过标准复制/粘贴的每一种变体,但都没有成功 注意:我想为各种自定义格式提供灵活性,例如$、%、千、百万等。我正在运行Excel 2010 这对你有用 Range("A1").Copy Range("A2").PasteSpecial xlPasteValuesAndNumberFormats 可通过以下公式实现:

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

例如,如果单元格A1包含值
10000
,但格式为千元
$10.0
,是否可以将单元格B1设置为A1中的文本字符串
$10.0
?我尝试过标准复制/粘贴的每一种变体,但都没有成功


注意:我想为各种自定义格式提供灵活性,例如$、%、千、百万等。我正在运行Excel 2010

这对你有用

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

可通过以下公式实现:

="$"&TEXT(A1/1000,"00.0")  
然后选择、复制、粘贴特殊值。

要仅复制单元格中显示的文本,您根本不会使用
复制
粘贴
粘贴特殊
方法

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

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

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

取决于“文本”的含义。您只是想粘贴相同的值和数字格式吗?如果是这样,@Jeanno在下面回答。如果您只想按值的显示方式放置,那么这将更加棘手,无法通过粘贴完成,但可以完成。这个数据的格式代码是什么?很好的澄清——我确实想要一个文本字符串,它模仿单元格中的格式,并使用实际值。这是因为我在图形中使用文本作为数据标签,VBA代码读取给定单元格的值,而不是其格式。不幸的是,格式代码是可变的。它可以是单个单位/千/百万,$/%/无单位,等等。。。因此,我不确定是否可以使用下面的pnuts代码。请尝试使用vba:
[A2]。Value=“””和[A1]。Text
?这非常有效,非常感谢!非常感谢。不幸的是,确切的格式是可变的。千/百万,$/%等。。。所以我需要更灵活一点的代码。谢谢——也许我做得不对,但值本身是不变的(例如10000美元对10.0美元)。当我尝试使用该值作为VBA的数据标签时,图形显示10000,而不是所需的“$10.0”。