2017-03-24 1 views
0

excel에서 VB 명령을 통해 프로그램을 실행 중입니다. 명령 프롬프트에 일부 명령을 쓰고 그 오류가 발생합니다. 나는 모든 인터넷을 검색했지만 아무 것도 내 오류처럼 보이지 않습니다. 여기에 내가 오류가 발생하고 코드의 일부입니다IWshShell3 오류 VBA

If ThisWorkbook.Sheets("BaseStation" & i).Cells(7, intcol) <> "" Then 
    Set oShell = CreateObject("WScript.Shell") 
    oShell.Run ("telnet -f C:\Users\" & Environ("Username") & "\output.log " & ThisWorkbook.Sheets("BaseStation" & i).Cells(3, intcol)) 
    Application.Wait (Now + TimeValue("00:00:04")) 

    Set ObjFS = CreateObject("Scripting.FileSystemObject") 
    Set objFile = ObjFS.GetFile("C:\Users\" & Environ("Username") & "\output.log") 
    Set ts = objFile.OpenAsTextStream(1, -2) 

어떤 생각은?

편집 :이 프로그램은 다른 컴퓨터에서 제대로 실행되고 있으며 모든 조사가 끝난 후이 컴퓨터의 차이점은 오류 (오류가있는 프로그램)에 있다는 것을 알았습니다. 32 비트는 엑셀이지만 다른 하나는 오류없이 응용 프로그램을 실행하는 64 비트 엑셀입니다. 문제는이 응용 프로그램이 32 비트에서도 실행되어야한다는 것입니다.

+0

현재 사용자 이름은 무엇입니까? –

+0

사용자 이름은 "Claud"입니다. – Claudiu

+1

참고로'oShell.Run commandString, 0, True'와 같은 명령은 명령 실행이 끝날 때까지 기다려서 application.wait을 수행 할 필요가 없습니다. (언제 완료 될지 어떻게 알 수 있습니까? 그 시간 안에 끝내야합니까?) –

답변

0

오류의 원인을 찾았으므로 다른 사람이이 문제를 다룰 경우를 대비하여 설명 할 것입니다. Windows에는 64 비트 프로그램 용과 32 비트 용의 두 가지 유형의 명령 프롬프트가 있습니다. 텔넷을 활성화하면 64 비트 기능 만 활성화됩니다. Office 32 비트를 사용했기 때문에 텔넷 기능이 활성화되지 않은 32 비트 cmd에 액세스하려고 했으므로 "telnet.exe"를 C :/Windows/Sysyem32에서 C : /로 복사하여 해결책을 찾았습니다. Windows/SysWOW64. 이렇게하면 32 비트 명령 프롬프트에서 텔넷을 사용할 수 있습니다.