Makro, které odmaže první 4 znaky v buňce

Anonym Seqecar19.07.2016 12:57 Nahlásit
Dobrý den, rád bych požádal o pomoc s makrem pro excel 2007. Mám sloupec s názvy firem, ale import dat z jiného zdroje mi občas vloží před název 3 pořadová čísla a podtržítko (takto: 367_XXXX_YYYY). Prosím o pomoc s makrem, které najde ve sloupci buňky, kdy čtvrtá pozice je "podtržítko" a potom smaže první 3 čísla včetně podtržítka, které je na 4 pozici. Děkuji velmi

Odpovědi

Přidat odpověď ▾

Diskuze

Mezek19.07.2016 14:38 Nahlásit
Má se zpracovat vždycky celý sloupec? A sloupec je pevně daný?
Anonym Seqecar21.07.2016 07:22 Nahlásit
Dobrý den, data ve sloupci začínají na pátém řádku, ale počet záznamů ve sloupci není pevně dán. Děkuji
Mezek21.07.2016 15:26 Nahlásit
Jednoduché makro by mohlo vypadat třeba takto:

Sub M1()
Dim a, b, e As String
Dim c, d As Integer
b = "F"
c = 5: d = 200
For i = c To d
e = b & i
a = Range(e).Value
If Mid(a, 4, 1) = "_" Then Range(e).Value = Right(a, Len(a) - 4)
Next i
End Sub

Na čtvrtém řádku je definován sloupec, který se bude zpracovávat, na pátém řádku je počáteční a konečný zpracovávaný řádek. Makro by se samozřejmě dalo zjednodušit co do počtu řádků, pokud by to bylo potřeba, na příklad automatickou definicí posledního řádku, ale pak by musela být tabulka souvislá, nemohla by obsahovat prázdné řádky.
Makro odmaže všechno, co je v údaji, ve kterém je čtvrtým znakem podtržítko, před tímto podtržítkem.
Mějme tedy 123_aaa_bbb_ccc. Po prvním průchodu makra tedy zůstane aaa_bbb_ccc. Pokud by tento údaj zpracovávalo makro znovu, zůstalo by bbb_ccc a po opětovném průchodu jen ccc. Proto pozor na opakované průchody.
Anonym Seqecar22.07.2016 07:57 Nahlásit
Dobrý den. Děkuji moc. To je přesně to, co jsem potřeboval. Přeji hezký víkend. Marek
Přidat komentář do diskuze ▾