Odstranění buněk pomocí smyčky For Each…Další“ smyčka v aplikaci Excel

  • 9/28/2020
  • 3 minuty na čtení
    • s
    • C
    • A
  • Týká se: Microsoft Office Excel 2007, Microsoft Office Excel 2003, Microsoft Office Excel 2002, Excel 97

Poznámka

Office 365 ProPlus se přejmenovává na Microsoft 365 Apps for enterprise. Další informace o této změně najdete v tomto příspěvku na blogu.

Shrnutí

Ve verzi Excel 2002 a novějších verzích aplikace Excel se buňky ve smyčce „Pro každou…Další“ odstraňují jiným způsobem než ve verzi Microsoft Excel 97 a starších verzích aplikace Excel.

Tento článek popisuje rozdíly a uvádí příklad makra v jazyce Visual Basic for Applications, který ilustruje způsob mazání buněk ve smyčce.

Další informace

Microsoft poskytuje příklady programování pouze pro ilustraci, bez výslovné nebo předpokládané záruky. To zahrnuje mimo jiné předpokládané záruky prodejnosti nebo vhodnosti pro určitý účel. Tento článek předpokládá, že jste obeznámeni s předváděným programovacím jazykem a s nástroji, které se používají k vytváření a ladění procedur. Inženýři podpory společnosti Microsoft vám mohou pomoci vysvětlit funkčnost konkrétního postupu. Nebudou však tyto příklady upravovat tak, aby poskytovaly přidanou funkčnost nebo konstruovaly postupy podle vašich konkrétních požadavků.

Ukázková data

Chcete-li použít makro v tomto článku, zadejte do pracovního listu následující ukázková data:

A1: a B1: 1A2: b B2: 2A3: x B3: 3A4: x B4: 4A5: c B5: 5A6: x B6: 6A7: d B7: 7A8: x B8: 8A9: x B9: 9A10: e B10: 10

Ukázkové makro

V novém modulu maker zadejte následující makro.

Chování ukázkového makra v Excelu 2002 a v novějších verzích Excelu

Při spuštění makra DeleteCells v Excelu 2002 a v novějších verzích Excelu se odstraní pouze řádky 3, 6 a 8. V případě, že je makro spuštěno v Excelu 2002 a v novějších verzích Excelu, odstraní se pouze řádky 3, 6 a 8. Přestože řádky 4 a 9 obsahují znak „x“ ve sloupci A, makro tyto řádky neodstraní. Výsledky makra jsou následující:

A1: a B1: 1A2: b B2: 2A3: x B3: 4A4: c B4: 5A5: d B5: 7A6: x B6: 9A7: e B7: 10

Pokud Microsoft Excel odstraní řádek 3, všechny buňky se posunou o jeden řádek nahoru. Například buňka A3 převezme obsah buňky A4, buňka A4 převezme obsah buňky A5 atd. Poté, co smyčka For Each…Next vyhodnotí buňku, vyhodnotí další buňku; proto mohou být buňky při posunu smyčkou přeskočeny.

Chování ukázkového makra v aplikaci Microsoft Excel 5.0 a Microsoft Excel 7.0

Při spuštění makra DeleteCells v aplikaci Excel 5.0 a v aplikaci Excel 7.0 makro odstraní všechny řádky, které obsahují znak „x“. Výsledky makra jsou následující:

A1: a B1: 1A2: b B2: 2A3: c B3: 5A4: d B4: 7A5: e B5: 10

Při odstranění řádku 3 se všechny buňky posunou o jeden řádek nahoru. Pak buňka A3 převezme obsah buňky A4, buňka A4 převezme obsah buňky A5 atd.

Na rozdíl od chování smyčky v Excelu 2002 a v pozdějších verzích Excelu však při vyhodnocování buňky smyčkou „For Each…Next“ v Excelu 5.0 a v Excelu 7.0 smyčka buňku znovu vyhodnotí, pokud je v smyčce odstraněna. Buňky tedy nejsou přeskočeny.

Doporučená metoda pro použití smyčky k odstranění buněk

Použijete-li následující makro, chcete-li použít smyčku k odstranění buněk:

Výsledky tohoto makra ve všech verzích aplikace Excel jsou následující:

A1: a B1: 1A2: b B2: 2A3: c B3: 5A4: d B4: 7A5: e B5: 10

Doplňková metoda pro použití smyčky k odstranění buněk

Toto je alternativní metoda k metodě, která je uvedena výše. Tato metoda vede ke stejným výsledkům.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.