Tommy H Posted September 25, 2008 Share Posted September 25, 2008 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 More sharing options...
Anjuna Moon Posted September 25, 2008 Share Posted September 25, 2008 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 More sharing options...
Tommy H Posted September 25, 2008 Author Share Posted September 25, 2008 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 More sharing options...
Anjuna Moon Posted September 25, 2008 Share Posted September 25, 2008 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 More sharing options...
Tommy H Posted September 25, 2008 Author Share Posted September 25, 2008 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 More sharing options...
Monshi Posted September 25, 2008 Share Posted September 25, 2008 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 More sharing options...
Tommy H Posted September 25, 2008 Author Share Posted September 25, 2008 Vad menar du med "kanske att du ska använda cellens Value-egenskap istället för Formula"? ??? //TH Link to comment Share on other sites More sharing options...
Monshi Posted September 25, 2008 Share Posted September 25, 2008 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 More sharing options...
Tommy H Posted September 25, 2008 Author Share Posted September 25, 2008 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 More sharing options...
Monshi Posted September 25, 2008 Share Posted September 25, 2008 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 More sharing options...
Tommy H Posted September 25, 2008 Author Share Posted September 25, 2008 Ja, nu är jag med Skall testa! Tackar och bugar som vanligt! //TH Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.