excel - getfolder - ¿Cómo uso FileSystemObject en VBA?
vba access filesystemobject (5)
Dentro de Excel, debe establecer una referencia a la biblioteca de tiempo de ejecución del script VB. El archivo relevante generalmente se encuentra en /Windows/System32/scrrun.dll
- Para hacer referencia a este archivo, cargue el Editor de Visual Basic ( ALT + F11 )
- Seleccione Herramientas> Referencias del menú desplegable
- Se mostrará un cuadro de lista de referencias disponibles
- Marque la casilla de verificación junto a ''
Microsoft Scripting Runtime
'' - El nombre completo y la ruta del archivo
scrrun.dll
se mostrarán debajo del cuadro de lista - Haga clic en el botón Aceptar .
¿Hay algo que necesite hacer referencia? ¿Cómo uso esto?
Dim fso As New FileSystemObject
Dim fld As Folder
Dim ts As TextStream
Me aparece un error porque no reconoce estos objetos.
Después de agregar la referencia, tuve que usar
Dim fso As New Scripting.FileSystemObject
Después de importar el tiempo de ejecución de scripting como se describe arriba, debe realizar algunas modificaciones para que funcione en Excel 2010 (mi versión). En el siguiente código, también agregué el código usado por el usuario para elegir un archivo.
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
Espero que ayude!
Atentamente
Fabio
En excel 2013, la cadena de creación de objetos es:
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
en lugar del código en la respuesta anterior:
Dim fs,fname
Set fs=Server.CreateObject("Scripting.FileSystemObject")
Estos chicos tienen excelentes ejemplos de cómo usar el objeto del sistema de archivos 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
%>