0

既存のExcelファイルを開いてシート内の値を計算するコードをvb6で作成しました。

問題が発生しました: "開かれた" Excel に "MDURATION" 式がありません。ただし、スタンドアロンの ms Excel に実際にその式があることを確認したので、vb コード (既に .exe 形式) を使用して Excel ファイルを開くと、その関数を識別できません。このエラーは 2 台の PC で発生しますが、テストした 3 台の PC では問題ありません。

おなじみの解決策:数式を入力するコードの直前にこれを追加しました:

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

私の他の手順ではうまくいくようですが、この特定の手順では効果がないようです。

さらに、実行時エラー 1004 が発生しました: この部分でオブジェクトのメソッドが失敗しました:

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

エラーの原因がわかりません。

どうもありがとう!!!

4

1 に答える 1

1

さらに、iveは実行時エラー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コードを表示できますか。

于 2012-05-20T10:05:38.003 に答える