2012-05-19 4 views
0

ive는 vb6에서 기존 Excel 파일을 열고 시트 안의 값을 계산하는 코드를 만들었습니다.개체 방법 실패, 수식 누락

문제가 발생했습니다 : "열린"엑셀에서 "MDURATION"수식이 누락되었습니다. 그러나 독립 실행 형 ms excel 실제로 그 수식이 있는지, 그래서 Excel 파일을 이미 .exe 형식으로 VB 코드를 통해 열릴 때 나는 그 기능을 식별 할 수 없는지 모르겠다. 필자는 2 대의 PC에서이 오류가 발생하지만 3 대의 PC에서는 아무런 문제가 없다고합니다.

친숙한 솔루션은 내가했다 : 내가 바로 내가 수식 입력 코드 전에 추가 :

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

하고이 특정 절차에 그러나 내 다른 절차에 대한 잘 작동하는 것 같다을 것 같습니다 이렇게하면 효과가 없습니다.

는 또한, 필자는 런타임 오류 (1004) encounted : 개체의 방법은이 부분에서 실패 :

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

및 메신저 확실하지가 오류를 발생시키는 것.

감사합니다.

+0

어,이 VB6 태그가 있지만 VBA 질문 같습니다. – Bob77

+0

아마도'.Installed' 메소드에 타이밍 문제가 있는지보기 위해 코드를 단계적으로 실행하십시오. 귀하의 두 번째 질문에,'iCtrRow'의 가치를 확인하십시오 - 유효합니까? –

+0

나는 이것을 내 PC에서만 디버깅 할 수 있으며 .Installed의 타이밍에는 문제가없는 것으로 보인다. 아마 내가 거기에 그것을 디버깅 할 수 없기 때문에 .exe 파일을 실행하는 PC에서 그 부분에 타이밍 문제가 있습니다. – hannah

답변

0

는 또한, 필자는 런타임 오류 (1004) encounted : 개체의 방법은이 부분에서 실패 :

가 VB6 인 경우는 다음 전체 참조를 지정해야합니다. 예를 들어. 당신은 VBA에서 그 일을하는 경우

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 

, 당신은 어떻게 당신이 그것을 활성화하고 "MDURATION를 사용에 대한 정확한 VB6 코드를 표시 할 수 있습니다, 분석 도구와 관련이

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 

처럼 될 것입니다 "수식.

+0

고마워요 !! 나는 단지 "."를 포함해야한다고 생각한다. . 추가 기능 ("분석 도구") 설치 = 및 당신 맞아요, 거기에 아마 다른 PC에서 타이밍 문제, 그래서 난 사이에서 지연을 배치 ".Range"대신 "범위"를 사용 False procdelay AddIns ("Analysis ToolPak")를 설치하십시오. 설치 = True 및 작동했습니다. 문제가 해결되었습니다. – hannah