Como ler dados da planilha do Excel usando o Excel VBA 2010

0

Em uma planilha do Excel, gostaria de ler dados de outra planilha do Excel e gravá-la em um arquivo de texto.

Exemplo da primeira folha:

Sheet_Name   File_Name    Start_Line   End_Line
Sheet1       C:\Test.txt  B5           H10         Button

Clicar no botão deve gravar as células Sheet1 B5-H10 em C: \ Test.txt.

Como fazer isso?

    
por user275763 21.11.2013 / 08:25

2 respostas

1

Veja um exemplo de como manipular um arquivo de texto diretamente

Private Sub CommandButton1_Click()
    Dim shSrc As Worksheet
    Dim rSrc As Range
    Dim dat As Variant
    Dim FileNumber As Integer
    Dim rw As Long, cl As Long

    Set shSrc = Worksheets(Me.Cells(2, 1).Value)
    dat = shSrc.Range(Me.Cells(2, 3).Value & ":" & Me.Cells(2, 4).Value).Value

    FileNumber = FreeFile
    Open Me.Cells(2, 2).Value For Output As #FileNumber
    For rw = 1 To UBound(dat, 1)
    For cl = 1 To UBound(dat, 2)
        Print #FileNumber, dat(rw, cl)
    Next cl, rw
    Close #FileNumber
End Sub

Nota:

  1. Pressupõe um botão ActiveX
  2. Você precisará adicionar tratamento de erros
  3. Você não diz qual layout deseja no arquivo de texto. Este justs escreve uma célula por linha.
por 23.11.2013 / 00:01
0

Copie as células que deseja salvar em um .txt em uma nova planilha, salve-a como um arquivo .txt e exclua a planilha temporária.

Assim:

'Copy the range you want to get into a file    

Sheets.Add After:=Sheets(Sheets.Count)

'Paste the range to Cells(1,1)    

ActiveWorkbook.SaveAs Filename:= FILEPATH, _
    FileFormat:=xlTextMSDOS, CreateBackup:=False

ActiveSheet.Delete    

ActiveWorkbook.SaveAs Filename:= FILEPATH, _
    FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

Se você quiser se livrar de prompts, defina Application.ScreenUpdating = False no começo.

    
por 21.11.2013 / 10:02