Predkladaná procedúra sa môže použiť na oddelenie dvoch slov v jednej bunke.
Ak máte dlhý zoznam mien (napr. z importu), avšak veľmi nevhodne
v jednej bunke a krstné meno je prvé, spustením procedúry sa mená zobrazia
v dvoch susedných bunkách. Predpokladá sa, že mená sú v jednom stĺpci - môžu
byť kdekoľvek na hárku (liste), a máte aktivovanú jednu bunku oblasti v ktorej sú mená.
Ďalej že aspom dva susedné stĺpce tabuľky sú prázdne.
Sub Oddelmena()
Dim pocR As Integer, pocS As Integer
Dim j As Integer, k As Integer
Set s = ActiveCell.CurrentRegion
'Current region (aktuálna oblasť) reprezentuje oblasť,
'ktorá je ohraničená prázdnymi (aspoň jedným) riadkami
'a prázdnymi stĺpcami (aspom jedným). Ak chcete vybrať
'danú oblasť, treba v nej mať aktivovanú aspom jednu bunku.
s.Select
pocR = Selection.Rows.Count
'zistí počet riadkov aktuálnej oblasti
pocS = Selection.Columns.Count
'zistí počet stĺpcov aktuálnej oblasti
j = Selection.Rows.Row
' číslo prvého riadku vybranej oblasti
k = Selection.Columns.Column
'číslo prvého stĺpca vybranej oblasti
Cells(j, k + 1).Select
ActiveCell.FormulaR1C1 = "=LEFT(RC[-1],FIND("" "",RC[-1],1))"
Cells(j, k + 2).Select
ActiveCell.FormulaR1C1 = "=RIGHT(RC[-2],LEN(RC[-2])-FIND("" "",RC[-2]))"
Set SourceRange = ActiveSheet.Range(Cells(j, k + 1), Cells(j, k + 2))
Set fillRange = ActiveSheet.Range(Cells(j, k + 1), Cells(j + pocR - 1, k + 2))
SourceRange.AutoFill Destination:=fillRange
End Sub
Oddeliť slová je možné aj bez VBA kódu. Majme databázu klientov
(obr.2). Zvolíme bunky v ktorých chceme rozdeliť slová. Klikneme na Údaje
(obr. 3) a zvolíme Text na stĺpce. Ak však máme veľmi dlhý stĺpec,
pomenujeme oblasť, v ktorej sú bunky v ktorých chceme rozdeliť slová (v tomto
prípade krstné meno a priezvisko). Zvolíme bunky s klientmi, klikneme na
vložiť - názov - definovať (obr.4).Potom, kliknutím na pole názvov
(obr.5) sa zvolia potrebné bunky.