如何在VBA中使用FileSystemObject?

l--*_*''' 105 excel vba filesystemobject

有什么我需要参考的吗?我该如何使用:

Dim fso As New FileSystemObject
Dim fld As Folder
Dim ts As TextStream
Run Code Online (Sandbox Code Playgroud)

我收到错误,因为它无法识别这些对象.

Rob*_*rns 171

在Excel中,您需要设置对VB脚本运行时库的引用.相关文件通常位于\Windows\System32\scrrun.dll

  • 要引用此文件,请加载Visual Basic编辑器(ALT+ F11)
  • 从下拉菜单中选择工具>参考
  • 将显示可用参考的列表框
  • 勾选' Microsoft Scripting Runtime' 旁边的复选框
  • scrrun.dll文件的全名和路径将显示在列表框下方
  • 单击OK按钮.

如果已启用对VBA对象模型的访问,也可以直接在代码中完成此操作.

Access可以通过选中复选框启用Trust access to the VBA project object model在发现文件>选项>信任中心>信任中心设置>宏设置

VBA宏设置

要添加参考:

Sub Add_Reference()

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

End Sub
Run Code Online (Sandbox Code Playgroud)

删除引用:

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
Run Code Online (Sandbox Code Playgroud)


Ger*_*ira 12

这些人有如何使用文件系统对象的优秀示例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
%> 
Run Code Online (Sandbox Code Playgroud)

  • 此代码段演示了在ASP/IIS中使用FSO并不是很好 (3认同)

Ste*_*cci 12

在excel 2013中,对象创建字符串是:

Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
Run Code Online (Sandbox Code Playgroud)

而不是上面答案中的代码:

Dim fs,fname
Set fs=Server.CreateObject("Scripting.FileSystemObject")
Run Code Online (Sandbox Code Playgroud)