Có điều gì đó mà tôi cần tham khảo? Làm cách nào để sử dụng cái này:
Dim fso As New FileSystemObject
Dim fld As Folder
Dim ts As TextStream
Tôi gặp lỗi vì nó không nhận ra những đối tượng này.
Có điều gì đó mà tôi cần tham khảo? Làm cách nào để sử dụng cái này:
Dim fso As New FileSystemObject
Dim fld As Folder
Dim ts As TextStream
Tôi gặp lỗi vì nó không nhận ra những đối tượng này.
Câu trả lời:
Trong Excel, bạn cần đặt một tham chiếu đến thư viện thời gian chạy tập lệnh VB. Tệp liên quan thường được đặt tại\Windows\System32\scrrun.dll
Microsoft Scripting Runtime
'scrrun.dll
tệp sẽ được hiển thị bên dưới hộp danh sáchĐiều này cũng có thể được thực hiện trực tiếp trong mã nếu quyền truy cập vào mô hình đối tượng VBA đã được kích hoạt.
Có thể bật quyền truy cập bằng cách đánh dấu vào hộp kiểm Trust access to the VBA project object model
được tìm thấy tại Tệp> Tùy chọn> Trung tâm Tin cậy> Cài đặt Trung tâm Tin cậy> Cài đặt Macro
Để thêm tài liệu tham khảo:
Sub Add_Reference()
Application.VBE.ActiveVBProject.References.AddFromFile "C:\Windows\System32\scrrun.dll"
'Add a reference
End Sub
Để xóa tham chiếu:
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
Trong excel 2013, chuỗi tạo đối tượng là:
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
thay vì mã trong câu trả lời ở trên:
Dim fs,fname
Set fs=Server.CreateObject("Scripting.FileSystemObject")
Dim fso As Object
Những người này có các ví dụ tuyệt vời về cách sử dụng đối tượng hệ thống tệp 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
%>
Sau khi thêm tham chiếu, tôi phải sử dụng
Dim fso As New Scripting.FileSystemObject
Sau khi nhập thời gian chạy tập lệnh như được mô tả ở trên, bạn phải thực hiện một số sửa đổi nhỏ để nó hoạt động trong Excel 2010 (phiên bản của tôi). Trong đoạn mã sau, tôi cũng đã thêm mã được sử dụng để người dùng chọn tệp.
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
Hy vọng nó sẽ giúp!
Trân trọng
Fabio