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

时间:2011-12-08 06:38:44

标签: excel excel-vba vba

我有一张工作表,我正在使用宏来创建图表。由于数据分散在工作簿中的各种工作表中,我正在复制它并创建一组连续的列来用于创建图形:

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%

以上是我希望在新复制的单元格中获得的值,而不是使用公式计算它们的方式。我正在使用上述来完成这项工作。

如何获取绝对值,而不是新复制的工作表单元格中的相对公式?

1 个答案:

答案 0 :(得分:3)

像这样使用Value

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

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

  • 获取Data1和Chart
  • 之间的单元格格式
  • 将值从Data1转储到Chart1,替换步骤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