Avatar billede copyrighttm Nybegynder
04. maj 2005 - 15:14 Der er 13 kommentarer

hjælp til mid eller left funktionen

jeg har en kolonne med en masse oplysninger som følger:

1123 trøjer
12 bukser
123321 jakker
1423 undertøj
.
.
Osv.

Jeg skal bruge en kode som skælner mellem om der er 2, 4 eller 6 tal i varenr'et og samtidig slette de andre hvis jeg f.eks efterspørger alle med 2 tal. Det er en hel række som skal slettes!

Jeg sidder og prøver mig frem med Mid og Left funktionerne, men kan ikke finde nogen brugbar løsning.

Håber på hurtig hjælp...
Avatar billede Slater Ekspert
04. maj 2005 - 15:29 #1
Hvis der altid er mellemrum efter tallet, kan du bruge:
InStr(1, strengvar, " ");
Avatar billede copyrighttm Nybegynder
04. maj 2005 - 15:35 #2
Det er lige det der ikke er... de ser sådan ud:

12    jakker
1234  bukser
123456 undertøj
1211  osv

Har du andre forslag?
Avatar billede copyrighttm Nybegynder
04. maj 2005 - 15:35 #3
altså der er 5 mellemrum ved 2 tal og 3 mellemrum ved 4 tal og 1 mellemrum ved 6 tal
Avatar billede supertekst Ekspert
04. maj 2005 - 15:40 #4
Indekser fra start mod slutningen:
for f = 1 to len(linie)
  ch = mid(linie,f,1)
  if ch = " " then
    varenr = left(linie,f-1)
  end if
next f

kør derefter videre - når tegnet ikke blank - så begynder varetekst
Avatar billede copyrighttm Nybegynder
04. maj 2005 - 15:49 #5
skal "linie" defineres som Integer? eller hvad er hvad er linie??
Avatar billede copyrighttm Nybegynder
04. maj 2005 - 16:01 #6
Jeg har gjort så man input'er et cifferniveau: enten 2, 4 eller 6 og så skulle den gerne kunne tage det givne cifferniveau og så slette de andre... det ser sådan ud:

For Each myCell In Range("A8:A7000")
    For i = 1 To Len(Cifferniveau)
        ch = Mid(Cifferniveau, i, 1)
        If ch = " " Then
        Linie = Left(Cifferniveau, i - 1)
        End If
    Next i
Next
Avatar billede Slater Ekspert
04. maj 2005 - 16:08 #7
copyright -> min ide virker stadig, selvom der er mange mellemrum - hvis bare der altid er MINDST ét efter tallet.
Avatar billede copyrighttm Nybegynder
04. maj 2005 - 16:15 #8
Skal den så se sådan ud så??

For Each myCell In Range("A8:A7000")
    If InStr(1, strengvar, " ") Then
    Check = True
Next

Hvordan vælger jeg så selv hvilket cifferniveau den skal være på??
Avatar billede copyrighttm Nybegynder
04. maj 2005 - 16:20 #9
Og hvordan får jeg slettet de rækker som jeg ikke skal bruge....??

Altså dem hvor Check = False...
Avatar billede nielle Nybegynder
04. maj 2005 - 20:01 #10
Hvad med at bruge en Regular Expersion i stedet:

Set RE = New RegExp
RE.Pattern = "(\d+)\s+(\S+)"
Set Matches = RE.Execute("1234  bukser")
Set ProductNr = Matches(0)
Set Product = Matches(1)

http://msdn.microsoft.com/library/default.asp?URL=/library/en-us/dnclinic/html/scripting051099.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/vscolsubmatches.asp
Avatar billede nielle Nybegynder
12. maj 2005 - 18:24 #11
Hvad med lidt respons?
Avatar billede nielle Nybegynder
26. juni 2005 - 20:00 #12
?
Avatar billede nielle Nybegynder
25. november 2007 - 18:03 #13
Lukketid?
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
Kurser inden for grundlæggende programmering

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