heldercorreia Posted September 15, 2009 at 02:05 PM Report Share #287105 Posted September 15, 2009 at 02:05 PM Cá vai mais uma dúvida: Preciso de fazer algo do género: Cells(a,b).value=Sn/U2n Para que fique não só mais legível como também mais perceptível do ponto de vista matemático. Alguma dica? Link to comment Share on other sites More sharing options...
jpaulino Posted September 16, 2009 at 06:56 AM Report Share #287247 Posted September 16, 2009 at 06:56 AM Olá, Basicamente só precisas de alterar a formatação após colocares lá o valor. Utilizas as propriedades Subscript e Superscript para formatar como queres, usando Characters(inicio, tamanho) para formatar apenas alguns caracteres. Exemplo: [a1].Value = "Sn/U2n" [a1].Characters(2, 1).Font.Subscript = True [a1].Characters(6, 1).Font.Subscript = True [a1].Characters(5, 1).Font.Superscript = True Link to comment Share on other sites More sharing options...
heldercorreia Posted September 17, 2009 at 02:06 AM Author Report Share #287403 Posted September 17, 2009 at 02:06 AM Experimentei, e funciona, consigo obter o que pretendo.. no entanto preciso de inserir muitas fórmulas.. Então escrevi uma função que recebe a string e uma sequência de variáveis de controlo com valores entre 0 e 2 em que cada valor corresponde a um estado, superscript(2), subscript(1), ou normal(0). Assim sendo basta fazer algo do género: call xpto("I2n*UrT3",0,2,1,0,0,1,1,2) para produzir I2n*URT3 Em vez de precisar de uma linha de código para cada caracter.. Só é pena ter que ser definida para um número limitado de caracteres à partida.. Abraço e obrigado! B) Link to comment Share on other sites More sharing options...
jpaulino Posted September 17, 2009 at 08:30 AM Report Share #287410 Posted September 17, 2009 at 08:30 AM Só é pena ter que ser definida para um número limitado de caracteres à partida.. Podes passar um array, mas penso que é o mesmo neste caso- Sub foo(str As String, val() As Byte) Dim x As Integer For x = 0 To UBound(val) Debug.Print val(x) Next x End Sub Sub btnFormatText() Dim formatText(4) As Byte formatText(0) = 0 formatText(1) = 1 formatText(2) = 0 formatText(3) = 2 formatText(4) = 1 Call foo("abcde", formatText) End Sub Link to comment Share on other sites More sharing options...
joseA Posted September 20, 2009 at 03:36 AM Report Share #287896 Posted September 20, 2009 at 03:36 AM Boas! Supondo que tenha em 03 linhas (A1, A2 e A3) frases maiores e queria alterar em A1 Characters 1,2 e 3 - 11, 12, 13 e 14 - 25, 26 e 27 p/ Bold em A2 Characters 1,2 e 3 - 11, 12, 13 e 14 - 25, 26 e 27 p/ Bold em A1 Characters 1,2 e 3 - 11, 12, 13 e 14 - 25, 26 e 27 p/ ColorIndex = 41 Como seria um ciclo para tal procedimento? Link to comment Share on other sites More sharing options...
heldercorreia Posted September 22, 2009 at 08:55 PM Author Report Share #288196 Posted September 22, 2009 at 08:55 PM Viva caro José Não vou postar a totalidade do código, mas deixo sim o modo de solucionar o problema. Sheet2.Range("A1").Select With ActiveCell.Characters(Start:=1, Length:=3).Font .Bold = True End With Portanto, começa-se por seleccionar a célula onde se deseja formatar o texto, seguidamente vamos alterar a formatação dos caracteres dessa célula.. Podemos seleccionar qualquer porção da string que estiver presente nessa célula com o caracter onde queremos que se inicie uma 'sub-string' e o comprimento que se deseja que ela tenha: Start:=6, Lenght:=8 , por exemplo selecciona os caracteres desde a posição 6 até à posição 6+8 = 14. Seguidamente, quem diz o .Bold diz também .Color, .ColorIndex, .Italic, etc enfim, todos os constituintes do objecto 'Font' de uma célula. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now