Avatar billede snowball Novice
21. februar 2003 - 11:30 Der er 4 kommentarer og
2 løsninger

Problemer med NumberFormat

Jeg har et problem med NumberFormat funktionen i Excel 2000. Jeg har følgende kode (udsnit):

    Sheets(DataSheet).Visible = True
    Sheets(DataSheet).Select
    Columns("A:A").Select
    Selection.Clear
    Columns("A:A").Select
    Selection.NumberFormat = "0.0"
    MsgBox "Format = " & Selection.NumberFormat
    With Selection
        .HorizontalAlignment = xlLeft
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .IndentLevel = 0
        .ShrinkToFit = False
        .MergeCells = False
    End With
    Workbooks.OpenText FileName:=fName, Origin _
    :=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
    xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False _
    , Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1)
    MsgBox "Format = " & Selection.NumberFormat

Problemet er, at NumberFormat skal være 0.0 og det går også fint nok med at sætte den til det. Men når jeg så kører Workbooks.OpenText, så bliver NumberFormat lavet om til General, hvilket så gør, at når jeg læser værdien 18.3 fra filen, så kommer der til at stå "18 mar" i feltet fordi den tolker det som et dato format. Hvis jeg så bagefter ændrer NumberFormat på de celler, så får jeg jo et vildt tal som jeg ikke kan bruge til noget.

Kan man ændre i Workbooks.OpenText så den ikke laver om på NumberFormat'er !?

Snowball
21. februar 2003 - 11:59 #1
Nej det kan du ikke - filen har det format den nu engang har, men leg lidt med denne her:

    Dim vntNumFormat As Variant
    vntNumFormat = "0.0"
   
    Sheets(DataSheet).Visible = True
    Sheets(DataSheet).Select
    With Columns("A:A")
        .Clear
        .NumberFormat = vntNumFormat
        MsgBox "Format = " & .NumberFormat
        .HorizontalAlignment = xlLeft
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .IndentLevel = 0
        .ShrinkToFit = False
        .MergeCells = False
    End With
    Workbooks.OpenText Filename:=fName, Origin _
    :=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
    xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False _
    , Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1)
    MsgBox "Format = " & Columns("A:A").NumberFormat
    With Columns("A:A")
        .NumberFormat = vntNumFormat
        MsgBox "Format = " & .NumberFormat
    End With
Avatar billede bak Forsker
21. februar 2003 - 13:08 #2
Velkommen tilbage, Flemming :-)

Snowball -> Kast lige et blik på sidste linie i denne open text.
Det er muligt at ændre general under import.

Workbooks.OpenText Filename:="G:\tbc1a.txt", Origin:=xlWindows, StartRow _
        :=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1), Array(13, 1), Array _
        (25, 1), Array(33, 1), Array(42, 1), Array(51, 1), Array(60, 1), Array(69, 1), Array(80, 1), _
        Array(102, 1), Array(132, 1), Array(137, 1), Array(147, 1), Array(153, 1)), _
        DecimalSeparator:=".", ThousandsSeparator:=","
Avatar billede snowball Novice
21. februar 2003 - 14:48 #3
bak: Det virker, så gider du lige lavet et svar så du kan få nogle point !? :)

Snowball
Avatar billede bak Forsker
21. februar 2003 - 15:02 #4
Det vil jeg da gerne. :-)
Gad vide om de bliver tilskevet ?
Avatar billede snowball Novice
21. februar 2003 - 15:21 #5
Har du problemer med at du ikke får point for et accepteret svar !?

Snowball
Avatar billede bak Forsker
21. februar 2003 - 15:56 #6
Jeg får nok pointene, men de vises ikke.
Men nu havde jeg lige en mulighed for at chekke :-)
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