Excel中错误1004“无法获取... WorksheetFunction类的财产”出现不一致Ex

2019-05-14 07:35发布

我有对在我的宏的早期阶段打开了另一电子表格操作电子表格中的VBA函数。 曾经工作正常,但最近才宏已经开始引起1004错误(“无法获取WorksheetFunction类的ROUNDDOWN财产”)在运行时。

我相信,我明白了什么错误会被引起的(问题运行ROUNDDOWN),但我不明白为什么它在我的宏和奇数部分得到触发的是,当我进入调试模式,并通过在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的(不,我认为这将是相关的)

有两点我已经试过有:

  • 替换一个不同的工作表函数(如敏(currentCell)),并且也导致了同样的问题

  • 有已经打开的文件似乎停止问题 - 我不知道是否有某种方式,它被打开(而不是我在它与宏工作簿为主)的工作簿宏未启用,这是干扰。 但即使是这样的,因为我不知道如何解决它!

有任何想法吗?

Answer 1:

当传递给工作表函数任何参数类型不正确,或者干脆就没有意义了此错误经常发生。

例如,我已经打电话时,这个问题WorksheetFunction.Asin比1大的争论在你的情况,我猜currentCell.Value不是根据有关数字的区域设置的非数值或一个。

是的,错误消息误导真的。



Answer 2:

我使用移调,MMULT,MDterm和MINVERSE函数错误“WorksheetFunction类无法获取*财产”。

我能得到我的代码,通过把“选项基本1”,在声明中Editer特定模块的部分(实际的代码之前)运行。

Excel假定“选项基地0”,这将增加空单元格的一个额外的行和列。 这将导致发生错误并不会立即明显的看出。



Answer 3:

我以前也来翻过这一点,对我来说是becase的标准范围内没有任何意义,因为安德烈上面说的。

见下文实施例公式: .Cells(11, i).Formula = Application.WorksheetFunction.CountIfs(Sheets("Sheet1").Range("AC8:C" & n), "S")

看一看的范围......这是没有意义的。 从修订的范围"AC8:C""AC8:AC" ,它会很好地工作



文章来源: Excel error 1004 “Unable to get … property of WorksheetFunction class” appearing inconsistently