2017-09-15 3 views
-3

Sie bitte meinen Code unten finden, wo ich die Erlaubnis verweigert FehlerVBA offen für die Ausgabe Erlaubnis verweigert

Sub VBA() 

Dim fso As Object 
Set fso = CreateObject("Scripting.FileSystemObject") 

i = "info" 
Set ts = fso.CreateTextFile("z:\" & i & ".txt", True) 

File = "z:\" & i & ".txt" 
n = FreeFile() 
Open File For Output As #n '''HERE I AM GETTING ERROR 
Print #n, s 
End Sub 
+1

Sie öffnete eine Datei mit FSO. Dann versuchen Sie, die gleiche Datei mit integrierten VBA-Tools zu öffnen. Benutze beides, nicht beides. – GSerg

+0

@GSerg Bitte führen Sie, wie kann ich mit FSO öffnen und drucken. – sagar

+0

Ich glaube nicht, dass 'FileSystemObject' das Drucken erleichtert, aber selbst wenn es so ist, ist ein" Leitfaden ", wie man damit drucken kann, mit ziemlicher Sicherheit zu breit, um am Thema zu sein. Versuchen Sie, Code zu schreiben, und wenn Sie ein bestimmtes Problem haben, werfen Sie eine andere Frage auf. (@ GSergs Kommentar beantwortet die Probleme, die Sie gerade haben.) – YowE3K

Antwort

0

bin immer können Sie die Funktion unten verwenden und eine beliebige Anzahl von Argumenten zu übergeben.

Public Sub WriteToTextFile(ByVal Filename As String, ParamArray args() As Variant) 
    On Error GoTo ErrProc 

    Dim hFileDest As Integer 
     hFileDest = FreeFile 
    Open Filename For Append As #hFileDest 

    Dim idx As Integer 
    For idx = LBound(args) To UBound(args) 
     Print #hFileDest, args(idx) 
    Next idx 

Leave: 
    On Error Resume Next 
    Close #hFileDest 
    On Error GoTo 0 
    Exit Sub 

ErrProc: 
    MsgBox Err.Description, vbCritical 
    Resume Leave 
End Sub 

es zu nennen:

Sub T() 
    Dim path_ As String 
     path_ = "D:\Test.txt" 

    WriteToTextFile path_, "One", "Two", "Three", "Four", "Five" 
End Sub 

Ausgang:

One 
Two 
Three 
Four 
Five 
+0

Ich habe den obigen Fehler mit Hilfe von ** ts.WriteLine s ** behoben. – sagar