How do I use FileSystemObject in VBA?

前端 未结 5 844
萌比男神i
萌比男神i 2020-11-22 02:50

Is there something that I need to reference? How do I use this:

Dim fso As New FileSystemObject
Dim fld As Folder
Dim ts As TextStream

I am

相关标签:
5条回答
  • 2020-11-22 03:27

    In excel 2013 the object creation string is:

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

    instead of the code in the answer above:

    Dim fs,fname
    Set fs=Server.CreateObject("Scripting.FileSystemObject")
    
    0 讨论(0)
  • 2020-11-22 03:32

    Within Excel you need to set a reference to the VB script run-time library. The relevant file is usually located at \Windows\System32\scrrun.dll

    • To reference this file, load the Visual Basic Editor (ALT+F11)
    • Select Tools > References from the drop-down menu
    • A listbox of available references will be displayed
    • Tick the check-box next to 'Microsoft Scripting Runtime'
    • The full name and path of the scrrun.dll file will be displayed below the listbox
    • Click on the OK button.

    This can also be done directly in the code if access to the VBA object model has been enabled.

    Access can be enabled by ticking the check-box Trust access to the VBA project object model found at File > Options > Trust Center > Trust Center Settings > Macro Settings

    To add a reference:

    Sub Add_Reference()
    
        Application.VBE.ActiveVBProject.References.AddFromFile "C:\Windows\System32\scrrun.dll"
    'Add a reference
    
    End Sub
    

    To remove a reference:

    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
    
    0 讨论(0)
  • 2020-11-22 03:36

    After adding the reference, I had to use

    Dim fso As New Scripting.FileSystemObject
    
    0 讨论(0)
  • 2020-11-22 03:37

    These guys have excellent examples of how to use the filesystem object 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
    %> 
    
    0 讨论(0)
  • 2020-11-22 03:45

    After importing the scripting runtime as described above you have to make some slighty modification to get it working in Excel 2010 (my version). Into the following code I've also add the code used to the user to pick a file.

    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
    

    Hope it help!

    Best regards

    Fabio

    0 讨论(0)
提交回复
热议问题