adiciona espaço após as vírgulas n no Excel, Notepad ++ ou emEditor?

0

Notepad ++ 6.8.8 Eu quero ser capaz de transformar várias linhas que começam assim:

0,2,3,45,67,89,01,234,567,890,123,4567,8901
0,7,8,9,0,11,12,13,14,151,162,173,184
x,z,q,r,n,f,t,a,e,f,z,n,a

em

0, 2,3, 45,67, 89,01, 234,567, 890,123, 4567,8901
0, 7,8, 9,0, 11,12, 13,14, 151,162, 173,184
x, z,q, r,n, f,t, a,e, f,z, n,a

Um espaço após a vírgula inicial 0, , (primeiro número com vírgula depois) e depois a cada 2 vírgulas, coloque um espaço em branco após a vírgula.

  • Não todas as linhas começarão com 0 [zero]. Pode começar com qualquer dígito ou período . possivelmente palavras, por vezes.
  • Eu quero que cada linha seja tratada de forma independente; manter seu conteúdo de linha separado (uma linha não pode ser envolvida em outra ao pesquisar números e vírgulas).

Eu posso ter outra situação em que precisarei adicionar espaço após a vírgula em grupos de 4 após a primeira vírgula. exemplo:

x,z,q,r,n,f,t,a,e,f,z,n,a

para

x, z,q,r,n, f,t,a,e, f,z,n,a

O Notepad ++ é a maneira preferida de fazer isso (expressões regulares, macro, etc), mas eu tenho EmEditor, MS Word / Excel 2010, se isso ajudar. É difícil gravar uma macro assim, porque a quantidade de caracteres antes / depois de cada vírgula pode ser diferente. Por favor, explique também a sintaxe que você usa caso precise fazer ajustes.

    
por Jon Grah 22.04.2016 / 17:41

1 resposta

1

Aqui está uma maneira de fazer isso no excel se você colar suas linhas na coluna A e alterar o workingRange para o seu intervalo. Então você pode simplesmente copiar a coluna A de volta ao bloco de notas

Abra o Excel Developer tab e escolha Visual Basic [para aplicativos] ou pressione Alt + F11 .

Copieocódigoabaixoemumnovomódulo:

OptionExplicitPublicSubnotepadthing()DimworkingRangeAsRange'SetyourrangehereSetworkingRange=Range("A1:A3")
    workingRange.TextToColumns _
    Destination:=workingRange, _
    DataType:=xlDelimited, _
        TextQualifier:=xlTextQualifierNone, _
        ConsecutiveDelimiter:=False, _
        Tab:=False, _
        Semicolon:=False, _
        Comma:=True, _
        Space:=False, _
        Other:=False

Dim lastColumn As Long
Dim rowNumber As Long
Dim columnNumber As Long
Dim myString As String


For rowNumber = 1 To workingRange.rows.count
    lastColumn = Cells(rowNumber, Columns.Count).End(xlToLeft).Column
    myString = Cells(rowNumber, 1) & ", "
    For columnNumber = 2 To lastColumn - 1
        myString = myString & Cells(rowNumber, columnNumber) & ","
        If columnNumber Mod 2 <> 0 Then myString = myString & " "
    Next
    Cells(rowNumber, 1) = myString & Cells(rowNumber, lastColumn)
Next

    Application.ScreenUpdating = True
End Sub

Faça a planilha em que você deseja formatar a planilha atual. Volte para a janela do VBA e clique no botão Run (parece um botão de reprodução em um dvd ou music player)

Éapenastextoparacolunaseconcatenação.Tenhocertezadequeháumamaneiramaisfácildefazerisso.

Amaneiracomooespaçamentofuncionaestáaqui-

ForcolumnNumber=2TolastColumn-1myString=myString&Cells(rowNumber,columnNumber)&","
   If columnNumber Mod 2 <> 0 Then myString = myString & " "
Next
Cells(rowNumber, 1) = myString & Cells(rowNumber, lastColumn)

Ele sempre adiciona , , mas você pode decidir quando adiciona um espaço . Agora a coluna 1 fica sozinha. Então, enquanto passamos pelas colunas, as colunas ímpares precisam do espaço columnnumber Mod 2 <> 0 .

Para mudar isso, você precisa trabalhar com a lógica: há um espaço após a coluna 1 e depois eu preciso de grupos de 4, então coluna 5, coluna 9, coluna 13. Mas esses são números difíceis de se trabalhar e eles são apenas fora de 1 para múltiplos naturais de quatro. Então, se eu subtrair um e, em seguida, verifique divisível por quatro ..

If (columnNumber - 1) Mod 4 = 0 Then myString = myString & " "
    
por 22.04.2016 / 18:49