- Vegyes társaság jött a szombati hardverbuliba
- Százmilliárd dolláros AI-fegyverkezésbe kezdett az Amazon és a Google
- Így tüzelt el százbillió forintot az AI a héten
- Kétféle módon harcol a forró helyzetekkel szemben az ASUS új, M.2-es SSD háza
- Mérföldkő a szilárdtest akkuknál: fontos lépést tett a QuantumScape
- Projektor topic
- Kormányok / autós szimulátorok topikja
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Amlogic S905, S912 processzoros készülékek
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Megárthattak az Intel VGA-terveinek az emelkedő árak
- Elképesztő lemaradásban van az aktuális Loongson CPU-család
- Home server / házi szerver építése
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Táp ventilátor csere
-
PROHARDVER!
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
#26162
üzenetére
Szia!
Az világos, hogy honnan szeretnél másolni, az viszont nem egészen, hogy hova.
Mert a "forrás" munkafüzet megnyitása után az abban levő munkalap válik aktívvá, tehát az itt
" For oszlop = 2 To 10 Step 4
'ebben a sorban valószínűleg több hiba is van:
ActiveSheet.Cells(19 + 2 * adat, oszlop) = 1000 * (Left(fajlnev.Sheets("Sheet1").Cells(36 + 2 * (adat - 1), 16), Len(fajlnev.Sheets("Sheet1").Cells(36 + 2 * (adat - 1), 16) - 1)))
ActiveSheet.Cells(19 + 2 * adat, oszlop).NumberFormat = "0"
Next oszlop"
hivatkozott Activesheet sajnos a forrás fájlodban van.Tehát ebben az esetben neked nem a forrás fájl hivatkozással van problémád, hanem a cél fájl hivatkozásával.
Ezt pedig úgy tudod megoldani, hogy az "eredeti" munkafüzeted kitöltendő munkalapját (amiből a többit megnyitod), egy változóhoz rendeled mielőtt még egy másik fájlt megnyitnál (pl.Set cellap=activesheet), mivel most még az az aktív munkalap.
Ezek után a számolás: cellap.cells(19+2*adat,oszlop) -ra kell hogy hivatkozzon és persze akkor fajlnev.sheets("Sheet1").cells helyett maradhat az Activesheet.cells."az eredeti adatok általános formátuma pl. "3.2k"" Ez azt jelenti, hogy mindig van a szám után egy betű és a formátum szöveg?
Ha igy van, akkor a használható a replace függvény is: replace(activesheet.cells(36+2*(adat-1),16),right(activesheet.cells(36+2*(adat-1),16),1),"").
Viszont a "beszúrt" programsorból úgy látom, az eredeti érték számformátum, ezért működik a közvetlen szorzás 1000-el, vagyis nem kell semmilyen levágás, átalakítás!Még valami: ahol Activesheet.Cells van, ott az Activesheet elhagyható, mert az az alapértelmezés.
Üdv.
Új hozzászólás Aktív témák
- MEGA AKCIÓ! - Jogtiszta Windows - Office & Autodesk & CorelDRAW - Azonnal - Számlával - Garanciával
- Kaspersky, BitDefender, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- SzoftverPremium.hu
- MS SQL Server 2016, 2017, 2019
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- LG 39GX90SA-W - 39" Ívelt Smart OLED/ WQHD 2K / 240Hz & 0.03ms / 1300 Nits / G-Sync & FreeSync
- GEN5!!! 14/12GB/s 1TB Gen5x4 NVMe SSD, 1 év gar
- GYÖNYÖRŰ iPhone 13 mini 128GB Green -1 ÉV GARANCIA - Kártyafüggetlen, MS4050
- ÁRGARANCIA! Épített KomPhone Ultra 9 285K 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Bomba ár! Lenovo ThinkPad L440 - i3-4000M I 8GB I 500GB I 14" HD I Cam I W10 I Garancia!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Fferi50

