对象失败的方法,缺少公式

时间:2012-05-19 07:54:35

标签: excel vb6

我在vb6中创建了一个代码,用于打开现有的excel文件并在工作表内计算值。

我遇到的问题: " MDURATION" "打开" Excel的;但是,我检查了独立的ms excel实际上有这个公式,所以我不知道如何通过vb代码打开excel文件(已经是.exe格式),它无法识别该功能。我在2台电脑上遇到这个错误,虽然我已经测试了3台电脑没有问题。

我熟悉的解决方案: 我在输入公式的代码之前添加了这个:

AddIns("Analysis ToolPak").Installed = False
AddIns("Analysis ToolPak").Installed = True

它似乎在我的其他程序上工作得很好,但是在这个特定程序上,似乎没有效果。

此外,我已经加载了一个运行时错误1004:此方法的对象失败方法:

Range("I" & iCtrRow & "").NumberFormat = "#,##0.00000"

我不确定导致错误的原因。

非常感谢!!!

1 个答案:

答案 0 :(得分:1)

  

此外,我已经加载了一个运行时错误1004:此方法的对象失败方法:

如果是vb6,那么您需要指定完整的参考。例如。

Private Sub Sample()
    Dim oXLApp As Object, oXLWB As Object, oXLSht As Object
    Dim iCtrRow As Long

    '~~> Establish an EXCEL application object
    On Error Resume Next
    Set oXLApp = GetObject(, "Excel.Application")

    If Err.Number <> 0 Then
        Set oXLApp = CreateObject("Excel.Application")
    End If
    Err.Clear
    On Error GoTo 0

    oXLApp.Visible = True

    '~~> Open the relevant file
    Set oXLWB = oXLApp.Workbooks.Open("C:\Book1.xls")

    '~~> Change (1) to the relevant sheet
    Set oXLSht = oXLWB.Worksheets(1)

    iCtrRow = 1

    '~~> iCtrRow
    oXLSht.Range("I" & iCtrRow).NumberFormat = "#,##0.00000"
End Sub

如果你在VBA中这样做,就会像这样

Private Sub Sample()
    Dim oXLWB As Workbook, oXLSht As Worksheet
    Dim iCtrRow As Long

    '~~> Open the relevant file
    Set oXLWB = Workbooks.Open("C:\Book1.xls")

    '~~> Change (1) to the relevant sheet
    Set oXLSht = oXLWB.Worksheets(1)

    iCtrRow = 1

    '~~> iCtrRow
    oXLSht.Range("I" & iCtrRow).NumberFormat = "#,##0.00000"
End Sub

关于Analysis Toolpak,您是否可以显示有关如何激活它以及使用“MDURATION”公式的确切vb6代码。