gpt4 book ai didi

Excel 错误 1004 "Unable to get .... property of WorksheetFunction class"出现不一致

转载 作者:行者123 更新时间:2023-12-01 17:22:00 25 4
gpt4 key购买 nike

我在一个电子表格中有一个 VBA 函数,该函数对在宏的早期阶段打开的另一个电子表格进行操作。该宏过去运行良好,但最近在运行时开始导致 1004 错误(“无法获取 WorksheetFunction 类的 RoundDown 属性”)。

我相信我明白错误会由什么原因引起(运行 RoundDown 时出现问题),但我不明白为什么它在我的宏中被触发,奇怪的是,当我进入 Debug模式并单步执行中的代码时VBE 错误不会再次出现(尽管没有明显变化)。

是否有人对这种不一致发生的错误有类似的经历,并且知道我可以采取什么措施来解决它?

我相当精通 VBA/Excel,但任何有关进一步诊断步骤的建议将不胜感激。我想知道打开的电子表格是否未准备好是否存在问题,但我不知道如何解决。

代码在这里。错误发生在标有注释的行上。

Public Function GetDatesA(sWorkbookname As String, sSheetname As String, sCell As String) As Variant

Dim vDateList() As Variant
Dim currentCell As Range
Dim n As Long

Set currentCell = Workbooks(sWorkbookname).Worksheets(sSheetname).Range(sCell)

n = 0

Do
If Trim(currentCell.Value) = "" Then
Exit Do
Else
ReDim Preserve vDateList(0 To 1, 0 To n)
vDateList(0, n) = WorksheetFunction.RoundDown(currentCell.Value, 0) 'error occcurs on this line
vDateList(1, n) = currentCell.Column
'Debug.Print currentCell.Value
End If
Set currentCell = currentCell.Offset(0, 1)
n = n + 1
Loop While currentCell.Column < XL_LAST_COLUMN

GetDatesA = vDateList

End Function

其他详细信息是:

  • Excel 版本:2010

  • 正在打开的文件位于我的 C: 驱动器本地;我的宏位于网络上的电子表格中

  • 这两个文件的文件格式均为 .xls(即 Excel 2003) - 我无法选择更改此设置

  • Windows 7(我认为这并不相关)

我已经尝试过的两点是:

  • 替换不同的工作表函数(例如 Min(currentCell))也会导致相同的问题

  • 打开文件似乎已经解决了问题 - 我想知道是否有某种方式正在打开的工作簿(而不是我的带有宏的主工作簿)未启用宏,并且这正在干扰。但即使这是原因,我也不知道如何解决它!

有什么想法吗?

最佳答案

当传递给工作表函数的任何参数类型不正确或根本没有意义时,通常会发生此错误。

例如,我在使用大于 1 的参数调用 WorksheetFunction.Asin 时遇到了此问题。在您的情况下,我猜 currentCell.Value 是非数字值或不符合您所在地区的数字设置。

是的,错误消息确实具有误导性。

关于Excel 错误 1004 "Unable to get .... property of WorksheetFunction class"出现不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10635048/

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