Děkuji Mikeovi, který tento týden poskytl excelovou otázku:
Snažím se napsat makro a jsem v tom nový. Mám tabulku Excel, která má stovky stránek a mnoho sloupců. Chtěl bych, aby makro prohledalo pouze sloupec „A“ pro „“ (žádná data) a poté použilo údaje z předchozího řádku, vybralo ze sloupců „A“ až „CB“ a poté vyplňovalo, dokud nezachytí data v buňka ve sloupci „A“. Pak je třeba to opakovat, dokud nebude vše hotové.
Níže uvedené makro bude stačit:
Public Sub CopyDown() LastRow = Range("A65536").End(xlUp).Row For i = 1 To LastRow If Range("A" & i).Value = "" Then Range("A" & i - 1 & ":CB" & i - 1).Copy Destination:=Range("A" & i) End if Next i End Sub
Možná ale nebudete muset použít makro k tomu, co chcete. Rychlejší způsob je použít triky zavedené v tipu od 12/12/98 k dosažení stejné věci bez makra.
Prvním trikem je vybrat všechny prázdné buňky ve vašem výběru. Zvýrazněte od A1 do CB v posledním řádku vašich dat. Vyberte Úpravy> GoTo> Speciální> Prázdné> OK.
Dále chcete zadat stejný vzorec do všech těchto prázdných buněk. Chcete-li to provést, stiskněte klávesu Equals, stiskněte šipku nahoru, podržte Ctrl a stiskněte klávesu Enter. Tím se replikuje vzorec do všech prázdných buněk.
Nakonec změňte vzorce na hodnoty. Zvýrazněte celý rozsah dat, vyberte Úpravy> Kopírovat, Upravit> Vložit jinak> Hodnoty> OK.
Všimněte si, že pokud původní Mikeova data obsahovala vzorce nebo obsahovala některé řádky, které byly částečně prázdné, pak tento postup nebude fungovat, bylo by lepší držet se makra zobrazeného výše.