- 9/28/2020
- 3 perc olvasás
-
- s
- C
- A
- A következőre vonatkozik:
- A
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.