Excel keresés vagy makró utolsó üres szóköz keresése
#1
Elküldve: 2011. 07. 02. 07:18
Nagyon hálás lennék, ha valaki segítséget (vagy némi iránymutatást) tudna adni a tekintetben, hogy, hogy tudnám megoldani a következő problémát:
Egy excel cellában néhány tíz szóból, vesszőből, számból és szóközökből álló kifejezés található. Szeretném az utolsó szóköz után található tartalmat (amely hossza sajnos mindig változik) egy következő cellába, jobbra áthelyezni. Az adatok/szövegből oszlopok lehetőséggel nem tudom megoldani, mivel Ő nem értelmezi az utolsó szóköz fogalmát, csak szóközönként, vagy vesszőnként tudja szétválasztani a cella tartalmát.
Előre is köszi a segítséget!
#2
Elküldve: 2011. 07. 03. 17:21
Idézet: szekelyelek - Dátum: 2011. 07. 02. 08:18
Nagyon hálás lennék, ha valaki segítséget (vagy némi iránymutatást) tudna adni a tekintetben, hogy, hogy tudnám megoldani a következő problémát:
Egy excel cellában néhány tíz szóból, vesszőből, számból és szóközökből álló kifejezés található. Szeretném az utolsó szóköz után található tartalmat (amely hossza sajnos mindig változik) egy következő cellába, jobbra áthelyezni. Az adatok/szövegből oszlopok lehetőséggel nem tudom megoldani, mivel Ő nem értelmezi az utolsó szóköz fogalmát, csak szóközönként, vagy vesszőnként tudja szétválasztani a cella tartalmát.
Előre is köszi a segítséget!
Köszi, ha bárki is gondolkodott a megoldáson..., de időközben megtaláltam!
Ha érdekel valaki, (bár gondolom nem) szívesen megosztom...
#3
Elküldve: 2011. 07. 04. 23:36
A halott Jedi a jó Jedi! (Sith közmondás)
#4
Elküldve: 2011. 07. 05. 17:09
a csere funkcióban a keresendő kifejezés szóköz és bármely szám karakter (vagy kettő, vagy három, vagy további pont is... ezres elválasztó jel...) ezt kell kicserélni pontosvessző és keresett kifejezés-re... Így a cellában lévő hosszú kifejezésből, amely egyes nagyobb elemei vesszővel vannak elválasztva, megjelöltük az utolsó részén szereplő számot... Ezt a pontosvesszőt Word-ben és Excel-ben is ki lehet cserélni tabulátor jelre, vagy szövegből oszlopok funkció...pontosvessző cellahatárolóval lehet külön cellába tolni a korábbi terjedelmes cella jobb szélén található, eltérő helyi értékű számokat.
Lehet, hogy "fapados" a megoldás, de programnyelv ismeret hiányában ez volt kiolvasható az Office-ból.
#5
Elküldve: 2011. 07. 10. 14:18
Idézet: szekelyelek - Dátum: 2011. 07. 05. 18:09
a csere funkcióban a keresendő kifejezés szóköz és bármely szám karakter (vagy kettő, vagy három, vagy további pont is... ezres elválasztó jel...) ezt kell kicserélni pontosvessző és keresett kifejezés-re... Így a cellában lévő hosszú kifejezésből, amely egyes nagyobb elemei vesszővel vannak elválasztva, megjelöltük az utolsó részén szereplő számot... Ezt a pontosvesszőt Word-ben és Excel-ben is ki lehet cserélni tabulátor jelre, vagy szövegből oszlopok funkció...pontosvessző cellahatárolóval lehet külön cellába tolni a korábbi terjedelmes cella jobb szélén található, eltérő helyi értékű számokat.
Lehet, hogy "fapados" a megoldás, de programnyelv ismeret hiányában ez volt kiolvasható az Office-ból.
erre egy pár soros excel vb.script makrót lehet írni, ami kiolvassa a cellából a tartalmat, és egy substringgel feldarabolja részekre, delimiternek megadva a szóközt, azt belepakolja egy tömbbe, a tömbön végigfuttat egy ciklust n-1 elemig, és az utols delimiter után lévő substringet meg kimásolja egy másik változóba, amit meg beteszi az adott cellába. hirtelen ez jutott eszembe (hasonlót csináltam már vb.scriptben, csak az egy abap sap connector volt, de hasonlóan cellaműveleteket scriptelve).
-C0pp3rM!n3-
Szerkesztette: Coppermine 2011. 07. 10. 14:19 -kor
#6
Elküldve: 2011. 07. 10. 14:30
Mindenképp elegánsabb mint az Én "fapados" megoldásom, de azóta a 2010-es Excel lehetőségeivel (pl cella érték színezés) szinte tökéletesre fejlesztettem...
#7
Elküldve: 2011. 07. 18. 14:00
Idézet: szekelyelek - Dátum: 2011. 07. 10. 15:30
Mindenképp elegánsabb mint az Én "fapados" megoldásom, de azóta a 2010-es Excel lehetőségeivel (pl cella érték színezés) szinte tökéletesre fejlesztettem...
parancsolj, itt egy elég egyszerű kód:
Dim mystring As String ez lesz a string amibe kiolvasod a cell tartalmát
mystring = Sheet1.Cells(1, 3) legyen mondjuk a C1-ben egy tesztszöveg amit kiszedünk
deststring = Split(mystring, " ") Split függvénnyel a mystring stringet feldaraboljuk, a delimiter " " lesz, vagyis a szóköz
MsgBox (deststring((UBound(deststring)))) próbának okáért kidobjuk egy messzidzsboxba
End Sub
az utolsó elemet deststring((UBound(deststring)))-el kapod meg, ezt átpakolhatod egy másik cellába így Sheet1.Cells(sor, oszlop).Value = deststring((UBound(deststring)))
-C0pp3rM!n3-
Szerkesztette: Coppermine 2011. 07. 18. 14:02 -kor
#8
Elküldve: 2011. 10. 03. 11:48
Tud valaki a DDE híváson kívül valami egyszerűbb, jobban kezelhető adatforgalmat a Word és az Excel között? Konkrétan most éppen arra gondolnék, hogy egy excel VBA projekt változó értékét hogy tudnám átvinni egy Word VBA projektjébe? Mert eddig csak a DDERequest paranccsal sikerült, előtte ugye szépen kiíratva az értéket az excel makróból egy cellába, ami ráadásul látható kell legyen és csak az aktív lapon lehet és... grrr, szóval ez így enyhén szólva kényelmetlen és idegőrlő.
Nem lehet valami "globális" változót definiálni, ami az excelből meg a wordből (stb., azaz az egész office-ból) is éppen aktuális értékén elérhető?
#9
Elküldve: 2011. 10. 03. 11:54
Idézet: Cpt. Flint - Dátum: 2011. 10. 03. 11:48
Ja, és örülnék, ha valaki meg tudná azt is mondani, hogy amúgy a DDERequest parancs "Item" elemének van-e az "RxCx" formulán kívül valami más megadható értéke is, mert a példákban mindig csak ezt találtam, és hiába is próbálkoztam mással.
#10
Elküldve: 2011. 11. 18. 22:27
Idézet: Cpt. Flint - Dátum: 2011. 10. 03. 11:48
Tud valaki a DDE híváson kívül valami egyszerűbb, jobban kezelhető adatforgalmat a Word és az Excel között? Konkrétan most éppen arra gondolnék, hogy egy excel VBA projekt változó értékét hogy tudnám átvinni egy Word VBA projektjébe? Mert eddig csak a DDERequest paranccsal sikerült, előtte ugye szépen kiíratva az értéket az excel makróból egy cellába, ami ráadásul látható kell legyen és csak az aktív lapon lehet és... grrr, szóval ez így enyhén szólva kényelmetlen és idegőrlő.
Nem lehet valami "globális" változót definiálni, ami az excelből meg a wordből (stb., azaz az egész office-ból) is éppen aktuális értékén elérhető?
Jobb híján fapadosnak tűnik, de lehet registrybe menteni és kiolvasni, értékeket, nem is lassú, és ha szükséges az applikáció szempontjából később is felhasználható (lld. Savesetting, Getsetting, Deletesetting)