Abaixo, veremos um programa em Excel VBA que grava um intervalo do Excel em um arquivo de texto CSV (valores separados por vírgula).
Situação:
Coloque um botão de comando em sua planilha e adicione as seguintes linhas de código:
1. Primeiro, declaramos uma variável chamada myFile do tipo String, um objeto chamado rng do tipo Range, uma variável chamada cellValue do tipo Variant, uma variável chamada i do tipo Integer e uma variável chamada j do tipo Integer. Usamos uma variável Variant aqui porque uma variável Variant pode conter qualquer tipo de valor.
Dim myFile As String, rng As Range, cellValue As Variant, i As Integer, j As Integer
2. Precisamos especificar o caminho completo e o nome do arquivo do arquivo.
myFile = Application.DefaultFilePath & "\ sales.csv"
Nota: a propriedade DefaultFilePath retorna o caminho de arquivo padrão. Para alterar o local padrão do arquivo, na guia Arquivo, clique em Opções, Salvar.
3. Inicializamos o objeto de intervalo rng com o intervalo selecionado.
Definir rng = Seleção
4. Adicione a seguinte linha de código:
Abra myFile para saída como # 1
Nota: esta declaração permite que o arquivo seja gravado. Podemos nos referir ao arquivo como # 1 durante o resto do nosso código. Se o arquivo já existir, ele será excluído e um novo arquivo com o mesmo nome será criado.
5. Inicie um loop duplo.
Para i = 1 para rng.Rows.Count
Para j = 1 para rng.Columns.Count
Observação: rng.Rows.Count retorna o número de linhas (17 neste exemplo) e rng.Columns.Count retorna o número de colunas (4 neste exemplo).
6. O Excel VBA grava o valor de uma célula na variável cellValue.
cellValue = rng.Cells (i, j) .Value
7. Adicione as seguintes linhas de código para gravar o valor de cellValue no arquivo de texto.
Se j = rng.Columns.Count Então
Escreva # 1, cellValue
Outro
Escreva # 1, cellValue,
Fim se
Explicação: devido à instrução If Then Else, o Excel VBA apenas inicia uma nova linha (Write # 1, cellValue) quando j é igual ao número de colunas (último valor em uma linha). Para separar os valores com uma vírgula, use Write # 1, cellValue, (com uma vírgula).
8. Não se esqueça de fechar os dois loops.
Próximo j
Proximo eu
9. Feche o arquivo.
Fechar # 1
10. Selecione os dados e clique no botão de comando na planilha.
Resultado: