【问题标题】:Excel Evaluate based on formulaExcel 根据公式计算
【发布时间】:2013-06-25 10:45:08
【问题描述】:

我最初在SSRS论坛上发布了类似的内容,但是由于SSRS的限制无法完成,所以无论如何我都不会尝试所以我将从不同的角度尝试。

我有 2 个 Excel 文档,分别称为“Prop1”和“Prop2”。在 Prop2 中有一个名为“Data”的工作表,这是一个导出的 SSRS 报告,在 DF 列中有许多看起来像 =(DD3*5) 的函数沿着工作表向下运行,但并未出现在每一行上。单元格DD3 包含从报告中导出的数字,例如我们会说 79。

我将从 Prop2 中拖动数据并将工作表放入 Prop1,然后我希望能够运行一个宏来评估现在在 Prop1 中的数据表中的所有单元格以及看起来像公式 @987654323 的任何内容@ 将此评估为适当的 Excel 函数,因此当更改 DD3 中的值时,它会更改计算结果。

不幸的是,这份文档将提供给一些对 Excel 知之甚少的人,因此我需要尽可能地自动化。我试图使用代码:-

Sub test()
    Dim cell As Range

    For Each cell In ActiveWindow.RangeSelection
        cell.Value = Evaluate(cell.Formula)
    Next cell
End Sub

但不确定如何自定义它以完成我试图解释的操作。

任何人都可以提供帮助,因为我真的没有其他选择来完成所有这些工作。

对不起,我有一些对 D33 的单元格引用和一些对 DD3 的引用,它们都应该是 DD3,我已经相应地更改了问题。

【问题讨论】:

  • 不确定你的意思是什么?
  • 不知道你在问什么,因为没有人帮助你所以不清楚
  • 您期望从代码中得到什么样的结果?
  • 好的,更多扩展,SSRS 没有适当的能力导出到 Excel 并维护一个 excel 函数,即如果我在导出时使用 =(D33*Hours) 在 SSRS 中填充一个单元格,我会得到一列读数 = (D33*5), =(D33*6) 等等,具体取决于小时值,一旦导出的 Excel 认为这只是文本,但是如果我单击 Excel 中导出的单元格,它就会将其识别为 excel公式,我在编写时需要帮助的是一些代码,它评估所有具有 =(D33* 的单元格,并将它们显示为 excel 函数,而不仅仅是纯文本。希望这更清楚一点,或者可能不是:(

标签: excel excel-2010 vba


【解决方案1】:

不太确定,但您可以更改cell.Value = Evaluate(cell.Formula)

cell.Formula = cell.Value

在公式中输入'时我已经尝试过了

【讨论】:

  • 嗨,matzone,不确定我是否正确理解了您的建议,您是否问是否可以将导出的值设置为 Evaluate(cell.Formula) 如果不幸的是,一旦导出了这个value 只是作为文本留下,假设我正确理解您,我又不得不再次评估它!
  • @PJD .. 试过这样 .. A1=1 .. B1=2 .. C1='=A1+B1 .. 然后我选择 C1 .. 继续执行代码 .. 所以C1 将是 3 ..
  • 嗨 matzone 感谢您的帮助,我在 excel 中的输出看起来像您的 C1 输出,但只有公式显示为它只是显示为文本,我需要让 Excel 自动意识到任何我们应该说单元格中有 D33* 确实是一个 excel 公式,需要这样处理。
  • @PJD .. 抱歉,您应用更改后的代码后得到了什么结果?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-06
  • 2015-04-05
相关资源
最近更新 更多