Tu máš úplne jedno, kde sa zdrojové i cieľový hárok nachádzajú, akonáhle však dôjde kód k príkazu na odvolanie sa na neexistujúci hárok, vykonávanie bude prerušené v tom stave, k akému sa dostal, než narazil na chybu a tam dá hlášku o chybe.
Údaje v stĺpci M musia byť súvislé, inak dôjde k označeniu oblasti len po prvú prázdnu bunku.
Sub Sustredenie()
On Error GoTo Chyba
Harky = Array("a0", "a1", "a2", "a3", "a4", "a5", "b1", "b2", "b3", "c")
Harok = "KH-vysledek"
Application.ScreenUpdating = False
Sheets(Harok).Select
RiadokCiela = 1
For i = 0 To 9
Harok = Harky(i)
Sheets(Harky(i)).Select
If Range("M2") = "" Then GoTo Dalsi
If Range("M3") = "" Then
Range("M2").Select
Else: Range("M2:M" & Range("M2").End(xlDown).Row).Select
End If
PocetRiadkov = Selection.Rows.Count
Selection.Copy
Sheets("KH-vysledek").Select
Range("A" & RiadokCiela).Select
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Sheets(Harky(i)).Select
Range("A1").Select
RiadokCiela = RiadokCiela + PocetRiadkov
Dalsi:
Next i
Sheets("KH-vysledek").Select
Range("A1").Select
Application.ScreenUpdating = True
MsgBox "Zlučovanie úspešne dokončené.", vbInformation, "Hotovo"
Exit Sub
Chyba:
Application.ScreenUpdating = True
If Harok = "KH-vysledek" Then GoTo EVR
Sheets("KH-vysledek").Select
Range("A1").Select
EVR:
MsgBox "Hárok """ & Harok & """ neexistuje!" & Chr(13) & "Zlučovanie bolo pozastavené!", vbCritical, "Chyba"
End Sub