从 vba 代码调用 Excel 的工作表函数
Posted
技术标签:
【中文标题】从 vba 代码调用 Excel 的工作表函数【英文标题】:Calling Excel's worksheet function from vba code 【发布时间】:2017-12-14 19:24:11 【问题描述】:使用 worksheetfunction 的方法,我可以从 vba 代码中调用很多 excel 的函数,而无需重新发明***。 不幸的是,并非所有功能都可用,但其他简单功能可以在 vba 库下找到。 现在我需要使用两个函数:
address()
indirect()
但是两个都不能作为 vba 或 worksheetfunction 的方法
(这里有什么可用的:https://msdn.microsoft.com/en-us/library/office/ff822194(v=office.14).aspx)
使用编辑器上的对象浏览器我找不到这些功能... 我该怎么办?
【问题讨论】:
请显示代码,我们可以根据上下文回答。Range.Address
是你要找的。span>
IF() 也不可用,因为它具有直接的 vba 等效项。
代替 INDIRECT():Range("youraddressstring")
【参考方案1】:
INDIRECT
是一种解析字符串的方法,这可以在 VBA 中轻松完成。 ADDRESS
也可以作为 Range
对象的成员找到。这就是它们不可用的原因。
【讨论】:
【参考方案2】:这是一个小例子:A1 包含文本 B1B1 包含文本 金C1包含公式:=INDIRECT(A1)
:
运行这个宏:
Sub UsingEvaluate()
MsgBox Evaluate("INDIRECT(A1)")
End Sub
将产生:
【讨论】:
以上是关于从 vba 代码调用 Excel 的工作表函数的主要内容,如果未能解决你的问题,请参考以下文章
从 Excel 调用 VBA 函数 - 在选定工作表上的选定列中查找