0

我在 vb6 中编写了一个代码,可以打开现有的 excel 文件并计算工作表内的值。

我遇到的问题:“打开”的 excel 上缺少“MDURATION”公式;但是,我检查了独立的 ms excel 实际上有那个公式,所以我不知道当通过 vb 代码(已经是 .exe 形式)打开一个 excel 文件时,它无法识别该函数。我在 2 台电脑上遇到了这个错误,虽然在我测试过的 3 台电脑上没有问题。

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

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

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

另外,我在这部分遇到了一个运行时错误 1004: Method of Object Failed:

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

我不确定是什么导致了错误。

非常感谢!!!

4

1 回答 1

1

另外,我在这部分遇到了一个运行时错误 1004: Method of Object Failed:

如果是 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

关于分析工具库,您能否显示有关如何激活它并使用“MDURATION”公式的确切 vb6 代码。

于 2012-05-20T10:05:38.003 回答