Tai sitten ei ole muille. Mutta itse en hiffaa. Excel 2011 macille käytössä.
Kaikki näyttää päin honkia. Esim. euron merkki chr(128) näyttää taasen isoa Ä:tä. Mutta mikää ääkkösistä ei toimi oikein.
Jes, pitäiskö ton perusteella jonkun osata sanoa jotain?
Avasit tiedostomuodon (.txt, .csv, .xls, xlsx, joku muu?) sillä Excelilläsi joka oli tehty jollakin (toisella?) koneella jollakin (toisella?) ohjelmalla?
Vai nakutteletko niitä merkkejä näppäimistöltä mitkä näkyy väärin? Vai jollain skriptillä duunaat? Vai kaavalla?
Tämän laadukkaan ja kattavan kuvauksen perusteella kuulostaa, että olet onnistunut sotkemaan Mac OS Roman -merkistön ja Windows-1252-merkistön. Ongelma ratkeaa luultavasti, jos käytät tiedoston tallennus- ja avausvaiheessa samaa merkistöä.
Sori huonosta kuvauksesta. Tiedosto luotu macilla xlsm. Makroja tehdessä esim. MsgBoxissa kaikki Chr() näyttää päin honkia. Miten avaan ton samalla merkistöllä?
Voisin kuvitella, että se toimisi ihan suoraan jos skriptissä et käyttäisi chr() funktiota vaan laittaisit merkit suoraan sellaisenaan koodiin. Eli miksi laittaa msgbox(chr(128)) kun voi laittaa msgbox("€")
chr() funktio varmaankin palauttaa isäntäkoneen merkistöllä tiettyä numeroa vastaavan merkin. Universaalimpi vaihtoehto on ChrW() käyttäminen, jolle annetaan Unicode-numerokoodi. Eli esim euro on chrw(8364)
Joo kyllähän tässä macillä toimii kaikki ääkköset ja erikoismerkit ihan suoraan kirjoitettuna. Mutta kun joudun esittämään ks. työn windowsilla niin siellä ne alkaa temppuilemaan.
Kiitos Grez, tuolla Chrw():llä toimii.
Miten kun Msgboxissa on aika pitkä teksti. Niin korvaanko ä:t ja ö:t näin. Luulis että yksinkertaisempikin ratkaisu löytyy.
o = Chrw(246)
a = Chrw(228)
MsgBox ("S" & a & "hk" & o & "postiosoite")
palapeli kirjoitti:
Joo kyllähän tässä macillä toimii kaikki ääkköset ja erikoismerkit ihan suoraan kirjoitettuna. Mutta kun joudun esittämään ks. työn windowsilla niin siellä ne alkaa temppuilemaan.
En kyllä keksi miksi ne alkaisi temppuilemaan Windowsilla. Ei ainakaan mun Windowsissa temppuile.
palapeli kirjoitti:
Miten kun Msgboxissa on aika pitkä teksti. Niin korvaanko ä:t ja ö:t näin. Luulis että yksinkertaisempikin ratkaisu löytyy.
o = Chrw(246)
a = Chrw(228)MsgBox ("S" & a & "hk" & o & "postiosoite")
Mielestäni yksinkertaisemp ratkaisu on:
MsgBox("Sähköpostiosoite")
Jos tuo yksinkertainen ratkaisu ei tosiaa toimi "cross platform" niin sitten varmaankin tuolla tavalla kuin esitit.
Sanotaanko että jos tällainen perusjuttu ei toimi mac<->win -välilläihan suoraa niin olen kyllä aika pettynyt MSFTiin. Olisi luullut että skriptit menisi xlsm-tiedostoon ihan vaan unicode-tekstitiedostoina, mutta näköjään ne on siellä paketissa jossain ihme binäärimuodossa :(
Valitettavasti en omista Excel lisenssiä macille, joten en voi kokeilla.
Sain toimimaan. Operator xFiltervalues oli turha joka aiheutti windowsissa ongelman muttei Macissä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.