Cellák törlése egy “For Each…Next” ciklus használatával az Excelben

  • 9/28/2020
  • 3 perc olvasás
    • s
    • C
    • A
  • A következőre vonatkozik:
  • A
  • A következőre vonatkozik: 1: Microsoft Office Excel 2007, Microsoft Office Excel 2003, Microsoft Office Excel 2002, Excel 97
  • Megjegyzés

    Az Office 365 ProPlus átnevezése Microsoft 365 Apps for enterprise-ra. A változással kapcsolatos további információkért olvassa el ezt a blogbejegyzést.

    Összefoglaló

    A Microsoft Excel 2002 és újabb Excel verziói a “For Each…Next” ciklusban más módon törlik a cellákat, mint a Microsoft Excel 97 és korábbi Excel verziói.

    Ez a cikk ismerteti a különbségeket, és egy Visual Basic for Applications makró példával illusztrálja a cellák hurokban történő törlését.

    Bővebb információ

    A Microsoft kizárólag illusztráció céljából, kifejezett vagy hallgatólagos garancia nélkül nyújt programozási példákat. Ez magában foglalja, de nem kizárólagosan, az eladhatóságra vagy a meghatározott célra való alkalmasságra vonatkozó hallgatólagos garanciákat. Ez a cikk feltételezi, hogy Ön ismeri a bemutatott programozási nyelvet, valamint az eljárások létrehozásához és hibakereséséhez használt eszközöket. A Microsoft támogatási mérnökei segíthetnek elmagyarázni egy adott eljárás működését. Ők azonban nem fogják módosítani ezeket a példákat, hogy további funkciókat biztosítsanak, vagy olyan eljárásokat építsenek fel, amelyek megfelelnek az Ön egyedi igényeinek.

    Mintaadatok

    A cikkben szereplő makró használatához írja be a következő mintaadatokat egy munkalapra:

    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

    Minta makró

    Egy új makrómodulba írja be a következő makrót.

    A mintamakró viselkedése az Excel 2002-ben és az Excel későbbi verzióiban

    A DeleteCells makró futtatásakor az Excel 2002-ben és az Excel későbbi verzióiban csak a 3., 6. és 8. sor törlődik. Bár a 4. és 9. sorok tartalmaznak egy “x”-et az A oszlopban, a makró nem törli a sorokat. A makró eredményei a következők:

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

    Amikor a Microsoft Excel törli a 3. sort, az összes cella egy sorral feljebb kerül. Például az A3-as cella átveszi az A4-es cella tartalmát, az A4-es cella átveszi az A5-ös cella tartalmát, és így tovább. Miután a For Each…Next ciklus kiértékel egy cellát, kiértékeli a következő cellát; ezért a cellák eltolódásakor előfordulhat, hogy a ciklus kihagyja őket.

    A mintamakró viselkedése a Microsoft Excel 5.0 és a Microsoft Excel 7.0 programban

    A DeleteCells makró futtatásakor az Excel 5.0 és az Excel 7.0 programban a makró minden olyan sort töröl, amely “x”-et tartalmaz. A makró eredményei a következők:

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

    A 3. sor törlésekor az összes cella egy sorral feljebb kerül. Ezután az A3-as cella átveszi az A4-es cella tartalmát, az A4-es cella átveszi az A5-ös cella tartalmát, és így tovább.

    Az Excel 2002-ben és az Excel későbbi verzióiban a ciklus viselkedésétől eltérően azonban, amikor a “For Each…Next” ciklus kiértékel egy cellát az Excel 5.0-ban és az Excel 7.0-ban, a ciklus újraértékeli a cellát, ha az a ciklusban törlődik. Ezért a cellák nem kerülnek kihagyásra.

    A hurok cellák törlésére való használatának ajánlott módszere

    A következő makrót használja, ha hurkot szeretne cellák törlésére használni:

    A makró eredményei az Excel minden verziójában a következők:

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

    Kiegészítő módszer a hurok cellák törlésére való használatára

    Ez egy alternatív módszer a fent bemutatott módszerhez képest. Ez a módszer ugyanolyan eredményt ad.

    Vélemény, hozzászólás?

    Az e-mail-címet nem tesszük közzé.