-
Fototrend
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
Fferi50
Topikgazda
válasz bteebi #48570 üzenetére
Szia!
"A lényeg az lett volna, hogyha a Target cella tartalmának az eleje egy adott sztring, akkor abból a cellából szedje ki az eredményt és másolja be egy másikba."
Akkor miért nem a Target cellát vizsgálod?
1. Először is kapcsold ki az eseménykezelést: Application.EnableEvents=False
Majd a makró végén kapcsold vissza: Application.EnableEvents=True
Ennek elmaradása esetén valahányszor a makró beír egy adatot valamely cellába, ismét lefut az eseménykezelő makró.
2. Mivel a Set Target=Columns("A") utasítással az egész oszlopot kijelölöd, annak első cellája az első sorban van. A következő utasítás ezért veszi az első sort.
Nem tudom miért kell neked a Target -et megváltoztatni?
Szerintem elég lenne megnézni, hogy az A oszlopban van-e? De mivel elmondásod szerint az A oszlopba olvasol be, ezért ez nagyon nagy eséllyel igaz.
Maga a Target objektum, amit az eseménykezelő megkap, az a cella, amelyben megváltozott az érték. Ezért azt a cellát kellene megnézned szerintem.
3. Hogyan is léptetné a sort, ha nincs benne ciklus. (De szerintem nem is kell léptetni.)
A folyamatot az zavarhatja, ha az új mérési eredmények hamarabb megjönnek, mint ahogyan az eseménykezelés lefut. Ezt ki kell próbálni.
Szerintem elég ezt megnézni:If Target.Column=1 Then
If Left(Target.Value,4)="Data" Then
Természetesen eseménykezelés ki és bekapcsolásával.
Illetve, ha mindig a 10. sorban van, akkor még azt a feltételt is beteheted:If Target.Row Mod 10 =0 Then '(azaz, ha a sor száma osztható tizzel akkor megyünk tovább.
Üdv.