Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Sök och ersätt cellinnehåll i Excel

Postades av 2004-09-22 10:16:18 - Björn Sivedal, i forum visual basic - allmänt, Tråden har 8 Kommentarer och lästs av 2474 personer

Värden i kolumn A skall ersättas med värden ur kolumn B.
Ex. i A "Kalle Kula" ersätts med "Kalle" från kolumn B.

Antal rader i kolumnerna A och B är okänt, kan vara 10 men kan också vara 35000. Behöver alltså få till en loop som söker varje rad.

// Björn Sivedal


Svara

Sv: Sök och ersätt cellinnehåll i Excel

Postades av 2004-09-23 12:31:12 - Torgrim Brochmann

Lite svårt att förstå hur du menar, men kan det vara så här:

Sub CopyAndPaste()
Dim CurrentCell As String
Dim CurrentColFrom As String
Dim CurrentColTo As String
Dim CurrentRow As Integer

'Först definierar vi var vi vill kopiera till
'och från
CurrentColFrom = "B"
CurrentColTo = "A"

'Vi startar på rad 1
CurrentRow = 1

'Definierar vilken cell vi är i
CurrentCell = CStr(CurrentColFrom & CurrentRow)

'Här loopar vi oss framöver helt tills
'det inte finns något i gällande cell
Do While Range(CurrentCell).Value <> ""

'Vi väljer det som finns i cellen
Range(CurrentCell).Select

'Kopierar det
Selection.Copy

'Så väljer vi A-kolumnen på gällande rad
Range(CStr(CurrentColTo & CurrentRow)).Select

'...och limmar in resultatet
ActiveSheet.Paste

'Derefter går vi till nästa rad och fortsätter loopen
CurrentRow = CurrentRow + 1

'Läser in gällande cell
CurrentCell = CStr(CurrentColFrom & CurrentRow)
Loop

'Bara en liten koll på att arbetet verkligen är gjord :)
MsgBox "Kopierade " & CurrentRow - 1 & " rader"
End Sub



Mvh Torgrim


Svara

Sv: Sök och ersätt cellinnehåll i Excel

Postades av 2004-09-23 20:01:50 - Björn Sivedal

Hej
Håller med om att jag var otydlig, sorry. Faktiskt missade jag det vitala.
I kolumn B finns det värden som rad för rad skall sökas igenom och matchas mot ett värde i kolumn A. Finns B-värdet skall detta ersättas med "" i kol A

Ex. före förändring
Kol A Kol B
Kalle Kula Kalle

Ex. efter förändring
Kol A Kol B
Kula Kalle

Bägge kolumnerna har okänt antal rader med värden att söka igenom.

Förresten, den kod du skickade har hjälp mig mycket i att förstå hur jag kan arbeta med loopar. Många tack för det.

Tacksam för hjälp även om jag strulade till det.

// Björn


Svara

Sv: Sök och ersätt cellinnehåll i Excel

Postades av 2004-09-23 20:08:29 - Niklas Jansson

Ska du jämföra varje värde med hela listan eller mot samma rad?

Alltså om du har

kol A
olle kula
kalle kula
lasse kula
göran kula

och i kolumn b har
kalle
stropp
grodan
boll

Ska då "kalle" i A2 ("kalle kula") försvinna, även om de inte står på samma rad.

Om de måste stå på samma rad är en av de snabbaste och mest intuitiva lösningarna att göra en extra kolumn där man låter excel räkna ut om texten finns med, och i så fall var positionen på den är. Där kan man göra hela lösningen med formler.


Svara

Sv: Sök och ersätt cellinnehåll i Excel

Postades av 2004-09-23 22:14:20 - Björn Sivedal

Varje värde i kol B skall jämföras mot kol A; finns Kalle från kol B med i kol A (Kalle Kula) skall Kalle bort och Kula vara kvar.

stropp från B finns inte i A och då sker heller ingen förändring i A.


Svara

Sv: Sök och ersätt cellinnehåll i Excel

Postades av 2004-09-24 07:14:12 - Björn Sivedal

Hej
Så här blev det:
Sub Ersatta_textinnehall()
Dim CurrentCell As String
Dim CurrentColFrom As String
Dim CurrentColTo As String
Dim CurrentRow As Integer

CurrentColFrom = "G" ' Kopierar från
CurrentRow = 1 'Startrad 1
CurrentCell = CStr(CurrentColFrom & CurrentRow) 'Anger aktuell cell

Do While Range(CurrentCell).Value <> "" 'Loop till inget värde finns

Columns("B:B").Select 'Här sker sök och ersätt
Selection.Replace What:=Range(CurrentCell).Value, Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False

CurrentRow = CurrentRow + 1 'Loopen fortsätter
CurrentCell = CStr(CurrentColFrom & CurrentRow) 'Läser in gällande cell
Loop

'Bara en liten koll på att arbetet verkligen är gjord :)
MsgBox "Kopierade " & CurrentRow - 1 & " rader"
End Sub


Tack för hjälpen.
// Björn


Svara

Sv: Sök och ersätt cellinnehåll i Excel

Postades av 2004-09-24 12:58:05 - Niklas Jansson

Tänkte bara ge tre förbättringar:
1. Istället för att foga samman kolumn och rad till en strängar, osv. så är det bättre att använda Cells (sen måste man inte använda value).
Alltså:
Byt ut Range(CurrentCell).Value till Cells(CurrentRow, CurrentColFrom)
2. Många Select onödiga, och pajar tidigare gjorda markeringar... Alltså:

-
Columns("B:B").Select 'Här sker sök och ersätt
Selection.Replace [...]
-

kan bytas ut mot

-
Columns("B:B").Replace[...]
-

3. Eftersom alla rader ska användas kan man lika gärna räkna ut vilka det är direkt, och sen göra en for-loopen, det blir lite snabbare.
Hitta nedersta cellen med Range("G1").End xlDown
Alltså loopen ser ut något i stil med:

For Currentrow = 1 To Range("G1").End(xlDown).Row
[...]
Next

Några tips, bara!


Svara

Sv: Sök och ersätt cellinnehåll i Excel

Postades av 2004-09-24 16:18:30 - Björn Sivedal

Som du förstått vid det här laget är jag nybörjare på VBA. Men dina tips funkade riktigt bra. Tack för det.
En sista grej bara, om jag har ett eller flera mellanslag kvar framför en del värden i kol A , hur får jag bort dom?
Jag har testat med Ltrim men det vill sig inte alls.

// Björn


Svara

Sv: Sök och ersätt cellinnehåll i Excel

Postades av 2004-09-24 21:45:32 - Niklas Jansson

Ltrim eller trim är det ju som bör användas, och det borde funka.
Det enklaste är att göra en ny loop efter den första som fixar just det.

(Och att min stavning och grammatik är helt åt helvete beror på att jag e sjuk... =) )


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 710
27 958
271 751
650
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies