Gibt es etwas, auf das ich verweisen muss? Wie benutze ich das:
Dim fso As New FileSystemObject
Dim fld As Folder
Dim ts As TextStream
Ich erhalte eine Fehlermeldung, weil diese Objekte nicht erkannt werden.
Gibt es etwas, auf das ich verweisen muss? Wie benutze ich das:
Dim fso As New FileSystemObject
Dim fld As Folder
Dim ts As TextStream
Ich erhalte eine Fehlermeldung, weil diese Objekte nicht erkannt werden.
Antworten:
In Excel müssen Sie einen Verweis auf die Laufzeitbibliothek des VB-Skripts festlegen. Die entsprechende Datei befindet sich normalerweise unter\Windows\System32\scrrun.dll
Microsoft Scripting Runtime
'scrrun.dll
Datei wird unter dem Listenfeld angezeigtDies kann auch direkt im Code erfolgen, wenn der Zugriff auf das VBA-Objektmodell aktiviert wurde.
Der Zugriff kann durch Aktivieren des Kontrollkästchens Trust access to the VBA project object model
unter Datei> Optionen> Vertrauensstellungscenter> Vertrauensstellungscenter-Einstellungen> Makroeinstellungen aktiviert werden
So fügen Sie eine Referenz hinzu:
Sub Add_Reference()
Application.VBE.ActiveVBProject.References.AddFromFile "C:\Windows\System32\scrrun.dll"
'Add a reference
End Sub
So entfernen Sie eine Referenz:
Sub Remove_Reference()
Dim oReference As Object
Set oReference = Application.VBE.ActiveVBProject.References.Item("Scripting")
Application.VBE.ActiveVBProject.References.Remove oReference
'Remove a reference
End Sub
In Excel 2013 lautet die Objekterstellungszeichenfolge:
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
anstelle des Codes in der obigen Antwort:
Dim fs,fname
Set fs=Server.CreateObject("Scripting.FileSystemObject")
Dim fso As Object
Diese Leute haben hervorragende Beispiele für die Verwendung des Dateisystemobjekts http://www.w3schools.com/asp/asp_ref_filesystem.asp
<%
dim fs,fname
set fs=Server.CreateObject("Scripting.FileSystemObject")
set fname=fs.CreateTextFile("c:\test.txt",true)
fname.WriteLine("Hello World!")
fname.Close
set fname=nothing
set fs=nothing
%>
Nachdem ich die Referenz hinzugefügt hatte, musste ich verwenden
Dim fso As New Scripting.FileSystemObject
Nachdem Sie die Skriptlaufzeit wie oben beschrieben importiert haben, müssen Sie einige geringfügige Änderungen vornehmen, damit sie in Excel 2010 (meiner Version) funktioniert. In den folgenden Code habe ich auch den Code eingefügt, der dem Benutzer zum Auswählen einer Datei verwendet wird.
Dim intChoice As Integer
Dim strPath As String
' Select one file
Application.FileDialog(msoFileDialogOpen).AllowMultiSelect = False
' Show the selection window
intChoice = Application.FileDialog(msoFileDialogOpen).Show
' Get back the user option
If intChoice <> 0 Then
strPath = Application.FileDialog(msoFileDialogOpen).SelectedItems(1)
Else
Exit Sub
End If
Dim FSO As New Scripting.FileSystemObject
Dim fsoStream As Scripting.TextStream
Dim strLine As String
Set fsoStream = FSO.OpenTextFile(strPath)
Do Until fsoStream.AtEndOfStream = True
strLine = fsoStream.ReadLine
' ... do your work ...
Loop
fsoStream.Close
Set FSO = Nothing
Hoffe es hilft!
Freundliche Grüße
Fabio