gpt4 book ai didi

excel - WorksheetFunction.CountA - 升级到 Office 2010 后无法正常工作

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

以下代码在 2010 年之前的 Excel 中有效:

myRange = Range("A:A")
NumRows = Application.CountA(myRange)
A 列中有 38 个包含文本/值的单元格。当代码在 Excel 2007 中运行时,NumRows 正确计算为 38,但是,它(错误地)在 Excel 2010 中计算为 65,536。
输入 CountA单元内功能在两个版本中都可以正常工作。
类似的线程是 question 16696891 ,但没有答案,我认为这些建议是红鲱鱼......
有任何想法吗?

最佳答案

我不确定您的问题到底是什么,因为我无法让您的代码按书面方式工作。有两件事似乎很明显:

  • 看来您依赖 VBA 来确定变量类型并进行相应修改。如果您不小心,这可能会让人感到困惑,因为 VBA 可能会分配您不想要的变量类型。在您的代码中,类型为 Range应分配给 myRange .由于 Range type 是 VBA 中的一个对象,它必须是 Set ,像这样:Set myRange = Range("A:A")
  • 您对工作表功能的使用CountA()应该用 .WorksheetFunction 调用

  • 如果您还没有这样做,请考虑使用模块顶部的 Option Explicit 选项,并使用 Dim 键入变量声明,正如我在下面所做的那样。

    以下代码在 2010 年适用于我。希望它也适用于您:
    Dim myRange As Range
    Dim NumRows As Integer

    Set myRange = Range("A:A")
    NumRows = Application.WorksheetFunction.CountA(myRange)

    祝你好运。

    关于excel - WorksheetFunction.CountA - 升级到 Office 2010 后无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25890571/

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