Bagaimana cara menggunakan FileSystemObject di VBA?


Jawaban:


178

Dalam Excel Anda perlu mengatur referensi ke pustaka run-time skrip VB. File yang relevan biasanya terletak di\Windows\System32\scrrun.dll

  • Untuk referensi file ini, muat Editor Visual Basic ( ALT+ F11)
  • Pilih Alat> Referensi dari menu drop-down
  • Kotak daftar referensi yang tersedia akan ditampilkan
  • Centang kotak di sebelah ' Microsoft Scripting Runtime'
  • Nama lengkap dan jalur scrrun.dllfile akan ditampilkan di bawah kotak daftar
  • Klik pada OKtombol tersebut.

Ini juga dapat dilakukan secara langsung dalam kode jika akses ke model objek VBA telah diaktifkan.

Akses dapat diaktifkan dengan mencentang kotak yang Trust access to the VBA project object modelditemukan di File> Opsi> Pusat Kepercayaan> Pengaturan Pusat Kepercayaan> Pengaturan Makro

Pengaturan Makro VBA

Untuk menambahkan referensi:

Sub Add_Reference()

    Application.VBE.ActiveVBProject.References.AddFromFile "C:\Windows\System32\scrrun.dll"
'Add a reference

End Sub

Untuk menghapus referensi:

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

Apa yang Anda lakukan di Mac?
Thomas Fankhauser

Apakah tidak ada cara untuk melakukan ini melalui baris perintah, seperti termasuk perpustakaan atau sesuatu?
LuizAngioletti

Apakah ada cara untuk AUTO mencentang kotak 'Microsoft Scripting Runtime'? untuk SEMUA file Excel? Saya menggunakan Excel 2016
compski

Lihat jawaban yang diterima untuk pertanyaan ini. stackoverflow.com/questions/9879825/…
Robert Mearns

13

Di excel 2013 string pembuatan objek adalah:

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

alih-alih kode pada jawaban di atas:

Dim fs,fname
Set fs=Server.CreateObject("Scripting.FileSystemObject")

untuk menjadi sedikit lebih eksplisit, saya biasanya melihatnya sebagaiDim fso As Object
Marcucciboy2

12

Orang-orang ini memiliki contoh yang sangat baik tentang bagaimana menggunakan objek sistem berkas 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
%> 

3
Potongan kode ini menunjukkan penggunaan FSO di ASP / IIS tidak unggul
Spangen

2

Setelah menambahkan referensi, saya harus menggunakan

Dim fso As New Scripting.FileSystemObject

2

Setelah mengimpor runtime skrip seperti yang dijelaskan di atas, Anda harus membuat sedikit modifikasi agar dapat berfungsi di Excel 2010 (versi saya). Ke dalam kode berikut saya juga menambahkan kode yang digunakan untuk pengguna untuk memilih 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

Semoga membantu!

salam Hormat

Fabio

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.