14. maj 2004 - 13:06Der er
23 kommentarer og 2 løsninger
Lopslag m.m.
Hej gruppe
Jeg har et par spørgsmål som jeg håber i kan hjælpe mig med.
Det første spørgsmål drejer sig om et LOPSLAG med en strengfunktion. (Venstre) Problemet er at LOPSLAGET søger efter værdien 2 i ark1, men den skal søge efter 002. Se nedenstående oversigt.
Når der er tale om en værdi kan man så få den til at medtage foranstående nuller?
Andet spørgsmål omhandler sammenkædede ark. Jeg har en txt.fil hvor jeg ændrer indholdet af fx kolonne 2 til formatet tekst. Nu indeholder denne udelukkende sekscifrede tal. (Eksempelvis 002200). Herefter gemmer jeg som Excel mappe Dette ark er herefter sammenkædet med et hovedark. Problemet er nu at tallene i hovedarket ikke indeholder de foranstående nuller.
Håber der er nogle der kan fortælle mig om ovenstående problemer kan løses eller det er noget jeg må leve med.
Der kan så opstå det problem, at hvis A-kolonnen ser sådan ud
0022222 123455
hvor kun det første tal er indtastet som tekst på grund af de foranstillede nuller, mens det sidste er indtastet som tal, da der ikke er foranstillede 0'er. I dette tilfælde virker peter100's egen løsning på det andet tal, mens vores giver fejl!
Det er altså nødvendigt at alle opslagstal (A-kolonnen i Ark2) altid indtastes som tekst.
Problemet er at tallene ikke er tekstformat. Jeg tager udgangspunkt i en tekstfil som jeg gemmer som excel-ark. Dette ark er så sammenkædet med et hovedark. Når disse kæder opdateres kommer tallene ind i hovedarket som standardformat og uden foranstillede nuller.
Hvis tallene kommer ind uden foranstillede nuller, nytter det ikke at lede efter 002. For det eksisterer jo ikke. Men du kunne måske køre en makro, der håndterede en konvertering.
Tænker du på en makro der via en HVIS-sætning indsætter nuller. Kan denne samtidig konvertere til tekstformat, så man undgår at skal benytte værdi i det senere LOPSLAG.
Det var noget i den stil jeg tænkete på, ja. Men for at kunne lave den, skal jeg vide lidt mere om de tal, der kommer ind. Har de altid en fast længde, når der ikke er foranstillede 0'er. eller skal de have en fast længde MED foranstillede nuller.
Når txt-filen bliver gemt som excel-ark indeholder alle tal 6 cifre, dvs. der er foranstående nuller. Det er først ved sammenkædningen med hovedarket at nullerne forsvinder og formatet i hovedarket bliver standard.
Prøv at køre denne kode på tallene efter at nullerne er fjernet, og se om det så ikke kommer til virke (prøv i en kopi :-). Husk at rette Range til det område, dine tal står i.
Sub FillOut()
For Each c In ActiveSheet.Range("a1:a6").Cells
l = Len(c.Value)
Select Case l Case Is = 1 c.Value = "'00000" & CStr(c.Value)
Det ser umiddelbart meget fint ud. Kan du konstruere makroen så den evt. starter i A2 og gennemløber de rækker der måtte være. Antallet af rækker vil nemlig variere fra gang til gang.
Sorry, jegt var lige optaget af andre ting, men jeg kan se at kabbsk har hjulpet .-)
Synes godt om
Ny brugerNybegynder
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.