referencia getfolder getfile filesystem error computer excel vba excel-vba filesystemobject

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 %>