gpt4 book ai didi

excel - 从命名范围/公式返回值(错误 1004、2015 或 13)

转载 作者:行者123 更新时间:2023-12-03 02:48:16 25 4
gpt4 key购买 nike

我在从 Excel VBA 中的命名公式返回值时遇到问题(简单的命名范围按预期工作)。

重新创建的步骤

  1. 空白工作簿
  2. 创建命名范围/公式 rowOffset 等于:

    =ROW(Sheet1!$A$2)-ROW(Sheet1!$A$1)
  3. rowOffset 按预期计算(等于 1)

但是,我一直无法弄清楚如何在 VBA 内部返回 rowOffset 的值。

有错误的示例代码

'##Sheet1 module##
Sub test()
'ERROR 1004: application-defined or object-defined error
Debug.Print Me.Range("rowOffset").Value
'Returns formula
Debug.Print Me.Names("rowOffset").Value
'ERROR 2015 in Immediate window
Debug.Print Application.Evaluate(Me.Names("rowOffset"))
'ERROR 13: type mismatch
Debug.Print Application.Evaluate(Me.Names("rowOffset").Value)
End Sub

为什么上面的代码在这种特定情况下不起作用,但对于定义为 =$A$1 的命名范围却起作用(按预期返回 A1 的值)?

编辑:感谢 Simoco 的(非常简单!)答案。通过本地人的窗口一趟,我应该能够自己解决这个问题!哈哈。

最佳答案

首先,有趣的问题!

沃金代码:

Debug.Print Evaluate("rowOffset")(1)

Debug.Print Join(Evaluate("rowOffset"))

Debug.Print Evaluate("INDEX(rowOffset,1)")

Debug.Print [INDEX(rowOffset,1)]

为什么 Debug.Print Evaluate("rowOffset") 不起作用?
原因是因为 ROW() 实际上返回包含一个元素的数组,而不是单个值
{1},您所需要做的就是使用 Join 获取它的第一个元素或连接数组。

enter image description here

关于excel - 从命名范围/公式返回值(错误 1004、2015 或 13),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23092865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com