首页 文章

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

提问于
浏览
1

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

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进行这项工作 .

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

1 回答

  • 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
    

相关问题