2017-03-24 17 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) 

任意の考えは?

編集:このプログラムは私の他のコンピュータでうまく動作していると言わざるを得ないが、すべての調査の結果、このコンピュータの違いはこの1つ(エラーのあるもの)が32ビットはExcelであり、もう1つはエラーなしでアプリケーションを実行しているもので、64ビットが優れています。 問題は、このアプリケーションが32ビットでも動作する必要があることです。

+0

この時点でのユーザ名は何ですか? –

+0

ユーザー名は「Claud」です。 – Claudiu

+1

'oShell.Run commandString、0、True'のようなものは、コマンドが実行終了するまで待ってからapplication.waitを実行する必要はありません(終了するタイミングを知る方法は?その時間内に終了しますか?) –

答えて

0

私はエラーの理由を見つけましたので、他の誰かがこの問題を扱う場合にのみ説明します。 Windowsには2種類のコマンドプロンプトがあり、64ビットプログラム用と32ビット用のプロンプトがあります。 telnetをアクティブにすると、64ビットの機能のみが有効になります。 私は32ビットのOfficeを使用していたので、それは32ビットのcmdにアクセスしようとしていましたが、これはtelnet機能がアクティブではなかったので、解決策を見つけました。 "telnet.exe"をC:/ Windows/Sysyem32からC: Windows/SysWOW64。 これにより、32ビットコマンドプロンプトからtelnetを使用できるようになります。