Notifications
Clear all

Expected Function or variable (metodo OpenText)

2 Posts
2 Usuários
0 Reactions
703 Visualizações
(@leandro-cordeiro)
Posts: 1
New Member
Topic starter
 

Prezados, 

estou tentando fazer uma importação comum de um arquivo txt no excel, mas está retornando o target ao método OpenText, mostrando o erro subscrito. Poderiam me ajudar?

 

Sub ImportarTXT()
    Dim CaminhoArquivo As String
    Dim MeuArquivo As Workbook

    
    ' Abrir o explorador de arquivos para selecionar o arquivo TXT
    With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "Selecione o arquivo TXT"
        .Filters.Clear
        .Filters.Add "Arquivos de Texto", "*.txt"
        .AllowMultiSelect = False
        
        If .Show = -1 Then
            ' Obter o caminho do arquivo selecionado
            CaminhoArquivo = .SelectedItems(1)
        Else
            ' Nenhum arquivo selecionado, sair do procedimento
            Exit Sub
        End If
    End With
    
    ' Desativar atualizações de tela para melhorar o desempenho
    Application.ScreenUpdating = False
    
    ' Abrir o arquivo TXT como um novo livro
    Set MeuArquivo = Workbooks.OpenText(Filename:=CaminhoArquivo, _
                                        Origin:=xlWindows, _
                                        StartRow:=1, _
                                        DataType:=xlDelimited, _
                                        TextQualifier:=xlDoubleQuote, _
                                        ConsecutiveDelimiter:=False, _
                                        Tab:=False, _
                                        Semicolon:=False, _
                                        Comma:=False, _
                                        Space:=False, _
                                        Other:=True, _
                                        OtherChar:="|")
    
    ' Faça algo com o arquivo importado, como copiar dados ou executar cálculos

    ' Feche o arquivo
    MeuArquivo.Close SaveChanges:=False
    
    ' Limpe a referência ao objeto do arquivo
    Set MeuArquivo = Nothing
    
    ' Reativar atualizações de tela
    Application.ScreenUpdating = True
    
    MsgB
 
Postado : 31/10/2023 3:30 pm
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Bem vindo, @leandro.cordeiro

OpenText é um método e alguns métodos não retornam objetos para serem atribuídos a variáveis de objeto, como é o caso.

Mas vc pode usar usar a característica dos métodos Open em geral de que, sempre que aplicados, o Workbook (ou Worksheet quando for o caso) se torna o Workbook (ou Worksheet) ativo e então usar ActiveWorbook para atribuir à sua variável.

Workbooks.OpenText Filename:=CaminhoArquivo, etc., etc., etc...
Set MeuArquivo = ActiveWorkbook

 
Postado : 01/11/2023 2:29 pm