0

こんばんは、

私はこのバグを数時間修正しようとしてきましたが、運がありませんでした。バグは自分のワークステーションではなく、他のすべてのワークステーションで発生するため、特にイライラします。このコードの目的は、2つの.txtファイルを作成(FileSystemObject-> CreateTextFile)し、それぞれに特定の情報を書き込む(TextStream)ことです。関連するコード行は次のとおりです。

Dim username, filename, filename_2, filepath, complete_filepath, complete_filepath_2 As String
Dim fso As New FileSystemObject
Dim fso_2 As New FileSystemObject
Dim txtStream, txtStream_2 As TextStream

'Gets username
username = CreateObject("WScript.NetWork").username

filename = "db_Redel"
filename_2 = "db_ship"

complete_filepath = "C:\Users\" & username & "\Documents\" & filename & ".txt"
complete_filepath_2 = "C:\Users\" & username & "\Documents\" & filename_2 & ".txt"

Set txtStream = fso.CreateTextFile(complete_filepath, True) 'RUNTIME ERROR 76
Set txtStream_2 = fso_2.CreateTextFile(complete_filepath_2, True)

宣言されたファイルパスは、これがテストされたマシンに存在すると確信しています。アクセス許可など、FileSystemObjectオブジェクトが正しく機能するのを妨げている疑いがありますが、他のワークステーションのOfficeセキュリティセンターを確認したところ、すべて同じ設定でした。有効化されたリファレンスは次のとおりです。

  • Visual Basic For Application
  • MicrosoftExcel14.0オブジェクトライブラリ
  • OLEオートメーション
  • MicrosoftOffice14.0オブジェクトライブラリ
  • Microsoftスクリプトランタイム

これらは、他のすべてのマシンでもアクティブ化されました。

私に何ができる?明確にするために、コードは自分のワークステーションで意図したとおりに機能します。

更新:友人の1人に試してもらいましたが、彼のPCでも問題なく動作します。

4

3 に答える 3

2

問題はdateformatにあったことが判明しました。私自身のPCのフォーマットはDD-MM-YYYYでしたが、他のワークステーションのフォーマットはDD / MM/YYYYです。スラッシュは明らかにファイル名に含めることができないため、この問題は次のように修正されました。

DateNow = Date()
filename = Replace(DateNow, "/", "-")

:(

于 2013-01-11T13:57:39.457 に答える
0

username入力から、との実際の値については不明ですDate。これらにスペースがある場合-あなたが観察するように問題があるかもしれません。最初にメソッドを使用して、 Truefso.FolderExists("C:\Users\" & username & "\Documents\")が返されることを確認してください。

于 2013-01-10T18:33:30.900 に答える
0

あなたのコードは私のPCでうまく動作しました。ただし、変数を暗くするときによくある間違いを犯しています。この線:

Dim username、filename、filename_2、filepath、complete_filepath、complete_filepath_2 As String

実際には、 complete_filepath_2を文字列として暗くするだけです。その他はバリアントタイプになります。

行に関する同じ問題:

Dim txtStream、txtStream_2 As TextStream

txtStream_2のみがTextstreamとして暗くなります

1行に1つの変数を暗くする必要があります。

文字列としてのユーザー名を暗くする

文字列としてのファイル名を暗くする

文字列としてのDimfilename_2

文字列としてのファイルパスを暗くする

文字列としてのDimcomplete_filepath

Dim complete_filepath_2 As String

そうして初めて、期待する変数タイプを取得できます

于 2013-01-10T21:18:41.340 に答える