Excel - Transformação de texto mantendo algarismos romanos maiúsculos

3

Eu tenho um arquivo CSV que é exportado de outro programa com uma das colunas sendo o título. Os dados no programa original são todos em maiúsculas para o campo de título. Assim, quando exporta, o título é parecido com o seguinte: 'COLUMN TITLE IV'. Se eu tentar transformar o texto em maiúscula, o título terminará assim: "Column Title Iv".

Existe alguma maneira de manter os numerais romanos no título como maiúsculos, mas transformar o restante dele em letras maiúsculas adequadas?

Meu arquivo tem cerca de 5.000 entradas, portanto, preciso fazer isso de maneira não manual.

EDIT: O que acontece se eu tiver um título como 'CPR FUNDAMENTALS IV'? Existe uma maneira de manter limites de CPR e apenas alterar 'FUNDAMENTALS' para 'Fundamentals'?

    
por ACanadianCoder 20.02.2018 / 16:32

1 resposta

1

Primeiro, instale as seguintes funções definidas pelo usuário em um módulo padrão:

Public Function Properize(s As String) As String
    Dim temp As String, i As Long, L As Long, U As Long
    ary = Split(UCase(s), " ")
    U = UBound(ary)
    L = LBound(ary)
    With Application.WorksheetFunction
        For i = L To U
            If IsRoman(ary(i)) Then
            Else
                ary(i) = .Proper(ary(i))
            End If
        Next i
    End With
    Properize = Join(ary, " ")
End Function


Public Function IsRoman(s As Variant) As Boolean
    Dim i As Long, L As Long
    For i = 1 To Len(s)
        ch = Mid(s, i, 1)
        If InStr(1, "IVXLCDM", Mid(s, i, 1)) = 0 Then
            IsRoman = False
            Exit Function
        End If
    Next i
    IsRoman = True
End Function

Depois, com o texto na célula A1 , B1 digite:

=Properize(A1)

Asfunçõesnumeraisromanos"maiúsculos" e palavras que "parecem" números romanos (por exemplo, 1CCCCCCCCCCCCCCCCCCCCCCCC)

Funções Definidas pelo Usuário (UDFs) são muito fáceis de instalar e usar:

  1. ALT-F11 exibe a janela do VBE
  2. ALT-I ALT-M abre um novo módulo
  3. cole o material e feche a janela do VBE

Se você salvar a pasta de trabalho, a UDF será salva com ela. Se você estiver usando uma versão do Excel posterior a 2003, deverá salvar o arquivo como .xlsm em vez de .xlsx

Para remover o UDF:

  1. abrir a janela do VBE como acima
  2. limpe o código
  3. feche a janela do VBE

Para usar o UDF do Excel:

= myfunction (A1)

Para saber mais sobre macros em geral, consulte:

link

e

link

e para detalhes sobre UDFs, consulte:

link

As macros devem estar ativadas para que isso funcione!

    
por 20.02.2018 / 17:51