Ir para conteúdo
Fórum Script Brasil
  • 0

Loop em diretorios


Fabiano Lopes

Pergunta

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 para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...