Avatar billede fojensen Nybegynder
04. oktober 2006 - 23:00 Der er 3 kommentarer og
2 løsninger

Formatere tal i cellen til sænket skrift

Jeg skal sammensætte en række kemiske formeler ,eksempelvis jernnitrat Fe(NO3)3, men tallene skulle gerne stå med sænket skrift. Da det er en formel der sammensætter Fe(NO3)3, kan jeg ikke bare markere tallet og gå i formater skrifttype osv.

Har prøvet at lave nedenstående funktion, som jeg kalder med My_subscript(formel med hvissætninger), men den skriver 0 i cellen
Public Function My_subscript()

Dim StringLen As Integer
StringLen = Len(Sub_String)

For i = 1 To StringLen
    With ActiveCell.Characters(Start:=i, Length:=1).Font
            If Mid(Sub_String, i, 1) = "2" Or "3" Or "4" Then
            .Subscript = True
            Else
            .Subscript = False
            End If
    End With
'    MsgBox ("i er " & i & " og tegnet er " & Mid(Sub_String, i, 1))
Next
End Function

har også testet lignende makro:
Sub test()
    Range("E14").Select
    With ActiveCell.Characters(Start:=3, Length:=1).Font
        .Subscript = True
    End With
End Sub
og den virker kun når det er tekst der er skrevet ind i cellen - ikke på resultatet af en formel.

hvordan kan jeg få det til at virke på resultatet af en formel
Avatar billede excelent Ekspert
05. oktober 2006 - 16:39 #1
Tvivler på det er muligt, men du kan kopiere værdien fra
formel-sellen og formatere kopien med sænket tal
Avatar billede supertekst Ekspert
06. oktober 2006 - 11:34 #2
Prøv denne:
Public Function My_subscript()
Dim StringLen As Integer

    StringLen = Len(ActiveCell)
    formel = ActiveCell.Value                      'Værdi hentes
    ActiveCell.Formula = ""                        'Formel slettes
    ActiveCell.Value = formel                      'Formel indsættes igen
   
    For i = 1 To StringLen
        With ActiveCell.Characters(Start:=i, Length:=1).Font
            kar = Mid(ActiveCell, i, 1)
                If kar = "2" _
                    Or kar = "3" _
                        Or kar = "4" Then
                .Subscript = True
                Else
                .Subscript = False
                End If
        End With
    Next
End Function

Rem OBS: Gem evt. arket under andet navn
Rem ====================================
Avatar billede fojensen Nybegynder
09. januar 2007 - 22:04 #3
oprydning i gamle spørgsmål:
supertekst: din løsning kunne godt formatere værdien, men er ikke dynamisk i cellen, da den vil hente værdien, slette formlen, og indsætte den omskrive værdi i cellen.

men tak for indsatsen - smid et svar, og du vil få del i points...
det samme gælder excelent...
Avatar billede supertekst Ekspert
10. januar 2007 - 08:37 #4
ok
Avatar billede excelent Ekspert
10. januar 2007 - 15:40 #5
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester