07. maj 2003 - 09:23Der er
19 kommentarer og 1 løsning
Celleopdeling
Luk annonce Hej alle Eksperter!
Jeg har et spørgsmål vedrørende opdelning af en celle Celle 1 Jan Larsen
Opdeles således
Celle1 Celle2 jan Larsen
Jeg har følgende kode og den virker fint nok, men jeg vil gerne have at resultatet flyttes over til et nyt ark (Sheet2) Beregningen skal fortsat laves i Sheet1.
Jeg får også fejlmeddelelse hvis fex. .,-*-/ ingår i beregningen. Hvordan undgår jeg dette? :-)
-----------------------------
Option Explicit Option Base 1 Sub Separera_Namn()
Dim vaData As Variant, vaFNamn As Variant Dim i As Integer, Start As Range Set Start = Range("c3")
vaData = Range(Start.Address, Cells(65536, Start.Column).End(xlUp).Address) ReDim vaFNamn(UBound(vaData), 2) For i = 1 To UBound(vaData) vaFNamn(i, 1) = Left(vaData(i, 1), Application.Find(" ", vaData(i, 1), 1)) vaFNamn(i, 2) = Right(vaData(i, 1), Len(vaData(i, 1)) - Len(vaFNamn(i, 1))) Next i Start.Resize(i - 1, 2) = vaFNamn End Sub
Desværre fobian. Jeg har ikke prøvet det og jeg er desværre ikke så dygtig. Jeg fik lavet det fra starten af en kollega som ikke kan få fat på mere, så om du kan hjælpe mig med koden er det bare perfekt.
Popsy. Jeg har lukket spørgsmålet. Jeg fik oprettet den under en forkert kategori men fik vist glemt at lukke den. Tak for remindern :-)
Tusind tak! Har du også mulighed for, at se på hvorfor jeg får følgende meddelelse når der er .,-/*- i navnet. Hvis et navn/firma står som rickie.com så kommer følgende meddelelse.
Jeg har lige ændret lidt i de to linier, som skriver til Blad2. Prøv at kopiere dem ind i stedet for de gamle. Jeg får ikke en fejlkode, hvis jeg prøver med navne med ,.- Hvis det bliver ved, må du lige sige til :-)
Kan jeg ikke lige få dig til at kopiere din kode ind i en kommentar. Så kan jeg prøve at kopiere den ind i mit eget modul og se om jeg også for samme fejl.
Her er så koden... --------------- Option Explicit Option Base 1 Sub Separera_Namn()
Dim vaData As Variant, vaFNamn As Variant Dim i As Integer, Start As Range Set Start = Range("c3")
vaData = Range(Start.Address, Cells(65536, Start.Column).End(xlUp).Address) ReDim vaFNamn(UBound(vaData), 2) For i = 1 To UBound(vaData) Application.Worksheets("Blad2").Cells(i, 1) = Left(vaData(i, 1), Application.Find(" ", vaData(i, 1), 1) - 1) Application.Worksheets("Blad2").Cells(i, 2) = Right(vaData(i, 1), Len(vaData(i, 1)) - Len(Left(vaData(i, 1), Application.Find(" ", vaData(i, 1), 1)))) Next i End Sub ------------ Såfremt du ønsker, at se mit excel dokument så kan jeg også sende en bid af den til dig :-)
Så nu er den fixet :-) Jeg har lavet en if sætning der ser om der er mellemrum i strengen og der splittes kun op, hvis der er mellemrum i strengen. Dvs. både fornavn og efternavn. Grunden til at du fik fejl var ikke at du brugte tegnene, men at der ikke var mellemrum i strengen. Lad mig høre om det du´r :-)
Option Explicit Option Base 1 Sub Separera_Namn()
Dim vaData As Variant, vaFNamn As Variant Dim i As Integer, Start As Range Set Start = Range("c3")
vaData = Range(Start.Address, Cells(65536, Start.Column).End(xlUp).Address) ReDim vaFNamn(UBound(vaData), 2) For i = 1 To UBound(vaData) If InStr(vaData(i, 1), " ") <> 0 Then Application.Worksheets("Blad2").Cells(i, 1) = Left(vaData(i, 1), Application.Find(" ", vaData(i, 1), 1) - 1) Application.Worksheets("Blad2").Cells(i, 2) = Right(vaData(i, 1), Len(vaData(i, 1)) - Len(Left(vaData(i, 1), Application.Find(" ", vaData(i, 1), 1)))) Else Application.Worksheets("Blad2").Cells(i, 1) = vaData(i, 1) End If Next i End Sub
Hvis du kopierer denne kode ind i stedet for de tilsvarende linier i din kode, så bliver resultatet placeret fra c3 og nedefter samt d3 og nedefter. Det er koden Cells(i+2, 3) der angiver hvor i arket værdierne skal placeres. i+1 er rækken og 3 er kolonnen. Det vil sige at den første observation har række 1+2 = 3 og kolonne 3 = c. Når for next løkken gennemløbes stiger værdien for i og derved bliver rækkenummeret højere for hvert gennemløb.
Det er helt enkelt for sejt. Jeg gad godt nok väre ligeså god haj som du. Endelig skulle jeg bare sende hele dokumentet til dig og så måtte du "charge me by the hour" L.O.L!
Du fortjener flere poäng end hvad jeg har angivet.
Tak for de flotte ord - skulle det være en anden gang :-)
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.