Just nu i M3-nätverket
Jump to content

Formatering av celler vid införande av värden


Tommy H

Recommended Posts

Hej!

Jag får problem med att importera siffervärden som börjar med "0". Det blir ju så att nollan försvinner.

Kan man köra en "standardformatering" typ:

Set rnRbt.NumberFormat = "@"
'följande rad hämtar värdet som kan börja med en nolla
rnRbt.Formula = c.Offset(0, 6).Value

Eller hur gör man?

 

En annan väg är ju kanske att "tvinga" dit ett "högkomma" ( ' ) som textformat, men det känns inte riktigt rätt.

 

??

 

//TH

 

Link to comment
Share on other sites

Du får skapa ett skräddarsytt nummerformat för att göra detta. Gör så här (jag använder bara engelskt Excel, men har du svenskt kanske du kan hitta rätt ändå):

- Högerklicka på cellen och välj Format Cells

- Välj Custom bland kategorierna

- Skriv i Type in så många nollor så att det representerar så många siffror som varje tal maximalt kommer nyttja

- Klart

 

Notera att detta förstås även kommer innebära att inledande nollor läggs till talet även om du inte explicit angivet det. För formatet "0000" kommer alltså en inskriven fyra generera 0004

 

 

[inlägget ändrat 2008-09-25 08:07:53 av Anjuna Moon]

Link to comment
Share on other sites

Mja, det fungerar nog inte riktigt för mig antar jag.

Det är så att jag importerar ett antal olika artikelnummer och dessa numren kan se väldigt olika ut.

Vissa har 4 siffror, andra 5 siffror, vissa börjar med en nolla, andra kan börja med 2st nollor osv.

 

Det känns som om ditt förslag kräver en "standardisering" av importvärdena....

 

Jag skulle vilja ha det som om man sätter ett ( ' ) förstn i cellen.

 

Fråan är ju kanske om man kan lägga till det i koden på ngt sätt.

 

rnRbt.Formula = c.Offset(0, 6).Value

 

För det är väl så att när jag söker med "Matchcase" i kryssat, så nonchaleras väl ( ' ) eller hur?

 

//TH

 

Link to comment
Share on other sites

Du behöver inte ha något ( ' ). Handlar det om artikelnr så är det ju bara att formatera cellerna som text istället för tal (Artikelnr kan ju faktisk även innehålla tecken, men även om de inte gör det så behandlar man dem ju inte som nummer, dvs utför inte beräkningar på dem)

 

Vill du fortfarande ha det som tal, med varierande antal siffror och behålla inledande nollor så ser iallafall inte jag någon annan lösning än att använda VBA.

 

Link to comment
Share on other sites

Det skumma är att även om jag har formaterat målcellen som text och källcellen står som text (där det kan börja med inledande nolla), så tappar jag den inledande nollan när jag hämtar värdet.

Sedan så kan jag (manuellt) skriva in en nolla i målcellen UTAN att formatera om cellen till typ text.

Det gör ju att det känns som cellerna har rätt formatering, och då är ju frågan om det är fel i koden eller vad det är?

 

Väldig frustrerande iaf...

 

Jag behöver INTE ha målcellen som tal, jag skall inte göra några beräkningar eller ngt annat där.

Det som skall ske är en sökning för att hämta ytterligare ett värde, och då blir det ju fel när nollan saknas...

 

//TH

 

 

 

Link to comment
Share on other sites

Det borde räcka det du gör...

kanske att du ska använda cellens Value-egenskap istället för Formula även om det, när jag testar, inte verkar spela någon roll.

 

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Link to comment
Share on other sites

Cells(1,1).Value = c.Offset(1, 523).Value

eller bara

Cells(1,1) = c.Offset(1,532)

är samma ska (tror jag). Value är standardegenskapen för celler i denna typ av anrop.

 

Du kan även testa att mellanlagra värdet i en textsträng men det borde inte göra någon skillnad.

Snabba upp det hela kanske? Formatera då hela målområdet, om du vet det, med ett anrop. Alltid mer kostsamt att arbeta cell per cell.

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Link to comment
Share on other sites

Det förandlerer en sådan där fråga tillbaka från en undrande...

Vart kommer "1,532" in i bilden?

 

Jag ser inte riktigt hur du menar!

 

//TH

 

Link to comment
Share on other sites

bara dummy-värden....

 

okej, lite mer som du vill ha det

rnRbt = c.Offset(0, 6)

borde räcka.

annars kan du ju testa mde

rnRbt = c.Offset(0, 6) & ""

som formaterar det åtminstone till en sträng.

 

 

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...