【问题标题】:Excel 2016 mac vba evaluate errorExcel 2016 mac vba 评估错误
【发布时间】:2020-07-02 15:37:34
【问题描述】:

我在运行 10.13.3 的 Mac 上使用 Excel v16.9 并尝试使用 Evaluate 函数,但它返回错误 Error 2015

导致错误的行是:

temp = Evaluate(GetWebDataTest("https://query2.finance.yahoo.com/v10/finance/quoteSummary/IBM?modules=assetProfile", 269, 150))

当我单步执行代码时,GetWebDataTest 被正确评估,但当函数结束时,值不会返回到变量 test,而是显示Error 2015

GetWebDataTest 返回的值为:

"sector":"Technology","longBusinessSummary":"International Business Machines Corporation provides information technology (IT) products and services wo

这是 Mac 版 Excel 的错误还是我做错了什么。

更新:

在对该问题进行进一步调查后,我将其范围缩小为 Evaluate 无法返回字符串。考虑以下代码:

 temp = Evaluate(RetText())
 temp1 = Evaluate(RetNo())

Public Function RetText() As String
    RetText = "Te"
End Function
Public Function RetNo()
    RetNo = 5
End Function

运行时,temp 抛出错误 - Error 2029temp1 正确分配了值 5。

如果结果函数试图返回一个字符串,看起来Evaluate 会失败。

【问题讨论】:

  • GetWebDataTest 似乎正在截断部分文本。评估有 255 个字符的限制。这可能是错误吗?
  • @EmilyAlden:感谢您的建议,但 GetWebDataTest 返回 150 个字符,因此在 Evaluate 的范围内
  • 您期望在该文本上运行Evaluate 的结果是什么?如果您尝试解析 JSON,那么它不是这样做的。
  • GetWebDataTest... 以字符串形式保存,例如 var。我实际上在做的是传递Evaluate(var) 并期望它返回函数的结果,在这种情况下是"sector....,如上所示。所以变量temp会保存函数返回的值
  • 这不是 Evaluate 所做的。您最好更多使用像github.com/VBA-tools/VBA-JSON 这样的现有库来解析完整的 JSON 响应,然后从中提取您需要的内容。

标签: excel vba macos


【解决方案1】:

Evaluate 尝试执行它作为公式给出的任何内容 - 因此它认为 TE 应该是一个它无法找到的已定义名称。

试试这个:

Public Function RetText() As String
    RetText = "=""Te"""
End Function

或者这个

Public Function RetText() As String
    RetText = """Te"""
End Function

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-30
    • 1970-01-01
    • 1970-01-01
    • 2017-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多