Jump to content
Fórum Script Brasil
  • 0

Loop em diretorios


Fabiano Lopes

Question

E aí pessoal, eu tenho um script que lê arquivos, por exemplo txt, num diretório. O que eu preciso é ler estes txt em vários diretórios dentro de um raiz. Pra isso eu fiz um array mas não consigo passar neles. Obrigado pela ajuda. Segue código:

Sub A_txt1()

Dim pasta As String
Dim tpArq As String
Dim Arq As String
Dim i As Long

Dim aaa(1 To 2) As String
aaa(1) = "teste1"
aaa(2) = "teste2"

i = 0  
pasta = "C:\Users\Fabiano\Desktop\aaa(i)\" 
tpArq = "*.txt"  
Arq = dir(pasta & tpArq, vbDirectory)

For i = 1 To 2
While Arq <> ""
i = i + 1
Arq = dir()
Wend
Plan6.Range("c2") = aaa(i)
Next i

End Sub

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0
6 horas atrás, Alyson Ronnan Martins disse:

Bom dia @Fabiano Lopes.

Teria como colocar o erro (aonde ele acontece e a mensagem)?

Tenta também mudar a string para variante:


Dim aaa(1 To 2) As Variant

 

Opa, cara não da erro, só não lê a quantidade de txt nos diretorios. Esse código é para contar a quantidade de de arquivos no diretorio. valeuuu

1 minuto atrás, Fabiano Lopes disse:

Opa, cara não da erro, só não lê a quantidade de txt nos diretorios. Esse código é para contar a quantidade de de arquivos no diretorio. valeuuu

No caso, esse array é o nome dos diretorios. Aí eu quero fazer um looping e passar por cada diretorio e contar a quantidade de txt la dentro. Depois salvo dentro da variavel' I ' e tenho a quantidade total.

Link to comment
Share on other sites

  • 0
Sub cmdVerArquivos()
    Dim fl() As String
    Dim FSO As Scripting.FileSystemObject
    Dim defFolder As Scripting.Folder
    Dim defFile As Scripting.File
    
    Dim defFolderLocal As String
    
    defFolderLocal = "C:\Users\Alyson\Pictures\"
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set defFolder = FSO.GetFolder(defFolderLocal)
    
    n = 0
    
    ReDim fl(0 To defFolder.Files.Count) As String

    For Each defFile In defFolder.Files
        If InStr(defFile.Name, ".txt") > 0 Then
            fl(n) = defFile.Name
            n = n + 1
        End If
    Next defFile
    
    'Agora que foram armazenado na variavel você pode usar eles para escrever aonde precisar:
    
End Sub

Adcionar a seguinte referência:

image.png.215f112257ca3cbcad3d5148f3ea772a.png

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...