22. august 2008 - 15:07Der er
11 kommentarer og 1 løsning
For loop og split i excel (VB)
Hej jeg har følgende problem
har en form i excel, hvor man skal kunne taste 1 eller flere post numre ind, adskildt med komma. Derefter skal der fortages en søgning ud fra de postnr man har tastet ind. som dete r nu virker det fint med ET postnummer, men ikke med flere..
For Each postcell In Sheets(strRepFrom).Range("a2:a63536") For i = 0 To LBound(Words) strPostCode = Words(i) If Len(strPostCode) > 0 Then ' MsgBox (strPostCode) her går det galt'''''''''''' If strPostCode = ActiveSheet.Range(strCurrentCell).Offset(0, 6).Value Then bolPostMatch = True Else bolPostMatch = False End If
virker næsten, den kopiere ikke alle postnumre med over og nogle gange skal jeg klikke på send flere gange før den gør det ...når jeg har tastet mere end 1 post numemr ind i feltet
jeg troede vi var færdige, så sorry: Se mine bemærkninger
For Each postcell In Sheets(strRepFrom).Range("a2:a63536") ' du læser ind her, er det postnumre For i = 0 To UBound(Words) strPostCode = Words(i) If Len(strPostCode) > 0 Then ' MsgBox (strPostCode) 'her går det galt'''''''''''' If strPostCode = ActiveSheet.Range(strCurrentCell).Offset(0, 6).Value Then ' det er det aktive ark, som du sammenligner på, skulle det ikke være Sheets(strRepFrom), som du tjekker bolPostMatch = True Else bolPostMatch = False End If
hej desværre nej :( når jeg skal flytte bliver jeg nødtil at klikke på flyt knappen flere gange så flytter den de postnr der er i en sheet til den anden
For Each postcell In Sheets(strRepFrom).Range("a2:a63536") ' nej det er ikke postnumre men bruger nr, feks 40 som også de forskellige sheets også hedder For i = 0 To UBound(Words) strPostCode = Words(i) If Len(strPostCode) > 0 Then ' MsgBox (strPostCode) 'her går det galt'''''''''''' If strPostCode = ActiveSheet.Range(strCurrentCell).Offset(0, 6).Value Then ' det har jeg prøvet, det fejler det er det aktive ark, som du sammenligner på, skulle det ikke være Sheets(strRepFrom), som du tjekker bolPostMatch = True Else bolPostMatch = False End If
If strPostCode = "" Then ' tjekker indtastninger MsgBox ("Vælg postnummer") Exit Sub ElseIf strRepFrom = "" Or strRepTo = "" Then MsgBox ("Indtast distrikt nr") Exit Sub End If
If InStr(strPostCode, ",") > 0 Then ' er der flere end 1 postnummer Words = Split(strPostCode, ",") x = UBound(Words) i = 0 Flere = True Else Words = strPostCode x = 1 i = 1 Flere = False End If
With Sheets(strRepFrom) RW = .Range("A1").End(xlDown).Row ' sidste række i Fra arket
For i = i To x For CE = RW To 2 Step -1 If Flere Then ' hvis flere, er de i em array variabel strPostCode = Words(i) Else ' ellers i en almindelig variabel strPostCode = Words End If If strPostCode = .Cells(CE, 1).Offset(0, 6) Then .Cells(CE, 1).EntireRow.Cut Sheets(strRepTo).Range("a65536").End(xlUp).Offset(1, 0) .Cells(CE, 1).EntireRow.Delete Shift:=xlUp End If Next CE Next i End With EndOfSub: Application.ScreenUpdating = True
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.