【问题标题】:Excel VBA - How To Insert Plain Value without Formula?Excel VBA - 如何在没有公式的情况下插入普通值?
【发布时间】:2011-04-28 07:43:21
【问题描述】:

我浏览了许多 Excel VBA 主题,但是,我没有找到任何有关插入普通值的信息——在这种情况下是 SUM() 的结果——而不是公式。有一个方法,PasteSpecial xlPasteValues,不过好像不是我要找的。​​p>

以下代码示例插入公式,而不仅仅是值:

Sub test()
    Range("A4").Value = "=SUM(A1:A3)"
End Sub

如何在 Excel VBA 中插入没有公式的普通值?

【问题讨论】:

  • 请尝试Range("A1").Formula = "=SUM(A1:A3)"

标签: vba excel excel-2003


【解决方案1】:

这就是我的想法,你正在寻找

range("a4").Value = Evaluate("SUM(A1:A3)")

【讨论】:

  • 我想价值甚至不需要 Evaluate 正在完成的所有工作?也非常感谢!
【解决方案2】:

您想要SUM 的实际结果吗?我会尝试使用WorksheetFunction.Sum 例如

Dim MyRange as Range
With Worksheets("SheetName")
  Set MyRange = .Range(.Cells(1, 1), .Cells(3, 1))
  .Cells(4,1) = WorksheetFunction.Sum(MyRange)
End With

【讨论】:

  • 其实Cell(,)的参数分别是ROW和COLUM。作为初学者,由于 Range() 和 Cell() 之前的附加点,此代码的理解要复杂得多。为什么选择 WorkSheetFunkction?它对更好的性能有好处吗?
  • @reforrer 正确,参数为行、列。我弄错了。我会编辑。是的,我相信WorksheetFunction.Sum 会比Evaluate() 快得多,因为Evaluate() 每次都需要解析字符串。
  • @reforrer .s 用作Worksheets("SheetName") 的简写(在这种情况下)(这样可以避免重复 - 请参阅With statement)。如果您想引用不在 ActiveSheet 上的单元格,则需要这些额外的限定条件。
猜你喜欢
  • 2012-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多