-
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
m.zmrzlina
#25459
üzenetére
Szia!
A VBA-ban a nevek nem úgy működnek, mint a munkalapon. A names("név").referstorange mutat a név által meghatározott területre, a names("név").refersto pedig az adott névhez tartozó terület címét adja meg.
Tehát ezt a sor részt:
Workbooks("forrásadatok.xlsx").Names("gyümölcsök")ki kell egészíteni:
Workbooks("forrásadatok.xlsx").Names("gyümölcsök").referstorange
Másrészt, sokkal gyorsabb, ha a range.replace tulajdonságát használod:
wsKabelo.Range("C2:C129").replace what:="ALMA",replacement:=1,lookat:=xlwhole
ami az egész tartományban kicseréli az ALMA szót az 1 számra.
A javított makró pedig a Gyümölcsök tartományon megy végig - és kicseréli az első oszlopban található gyümölcsneveket a második oszlopban található számokra:
Set rng_gyümölcsök = Workbooks("forrásadatok.xlsx").Names("gyümölcsök").referstorange
Set wsKabelo = ActiveSheet
for each cl in rng_gyümölcsök.columns(1).cells
wsKabelo.range("C2:C129").replace what:=cl.value,replacement:=cl.offset(0,1).value, lookat:=xlwhole
nextEgyébként annyit javaslok még, hogy ne használj ékezetes karaktereket a makrókban és a neveknél, mert ebben az esetben nem hordozható a munkafüzeted, más (pl.angol) környezetben hibásan /vagy nem működik.
Üdv.
Új hozzászólás Aktív témák
- Xiaomi Redmi Note 13 Pro+ / 12/512GB / Kártyafüggetlen / 12Hó Garancia
- LG UltraGear 27G850A-B IPS Monitor! 3840x2160 / 240-480Hz / 1ms / G-Sync / FreeSync! BeszámítOK
- HIBÁTLAN iPhone 12 64GB Purple -1 ÉV GARANCIA - Kártyafüggetlen, MS4655
- LG UltraGear 34GS95QE OLED Monitor! 3440x1440 / 0.03ms / 240Hz / FreeSync / G-Sync! BeszámítOK!
- AKCIÓ! Gigabyte B650M R7 8700F 64GB DDR5 1TB SSD RTX 5070 Ti 16GB Lian LI LANCOOL207 ADATA 850W
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Fferi50