复制Excel工作表单元格的绝对值(而不是公式)

我有一个工作表,我正在使用macros创build一个graphics。 由于数据分散在工作簿中的各个工作表中,因此我将其复制并创build一组连续的列用于创build图表:

Sheets("Data1").Range("A29:A39").Copy Destination:=Sheets("Chart").Range("AA29:AA39") Sheets("Data2").Range("D29:D39").Copy Destination:=Sheets("Chart").Range("AB29:AB39") Sheets("Data3").Range("I29:I39").Copy Destination:=Sheets("Chart").Range("ACI29:AC39") Sheets("Data3").Range("D129:D139").Copy Destination:=Sheets("Chart").Range("AD29:AD39") 

我的数据如下所示:

 CustomerA 489 456 93% CustomerB 63 0 0% CustomerC 123 123 100% CustomerD 185 172 93% 

以上是我希望在新复制的单元格中获得的值,而不是如何使用公式计算它们。 我正在使用上面的vba进行这项工作。

我怎样才能获得绝对值,而不是我刚刚复制的工作表单元格中的相对公式?

使用这样的Value

 Sheets("Chart").Range("AA29:AA39").Value = Sheets("Data1").Range("A29:A39").Value 

更新:如果您将数据转储到已经格式化为数字和百分比的单元格中,则此过程比复制和粘贴更清晰。 如果你需要的格式,那么你可以结合上面的行粘贴特殊的formtas或结合我们的两个代码

  • 获取Data1和Chart之间的单元格格式
  • 将Data1中的值转储到Chart1,replace步骤1中的公式

     Sheets("Data1").Range("A29:A39").Copy Destination:=Sheets("Chart").Range("AA29:AA39") Sheets("Chart").Range("AA29:AA39").Value = Sheets("Data1").Range("A29:A39").Value