Excelin desimaalierotin ongelma!
Miten laskutoimituksen desimaalierottimena oleva piste muutetaan pilkuksi?
Olen kokeillut muuttaa desimaalierotinta ilman tulosta, ComboBox2 ikkunassa desimaalierottimena on piste, ei pilkku
' (ComboBox1.Value= 15) Private explit Private const x = 21 Private Sub CommandButton1_Click() ComboBox2.Value = Round((ComboBox1.Value * x)/100 , 1) End Sub
Mod. korjasi kooditagit!
Laskutoimituksissa ei sisäisesti ole tiettyä desimaalierotinta, vaan ne ovat liukulukuja. Vasta kun liukuluku esitetään näytöllä tai merkkijonossa, saa desimaalierotin jonkin merkkiarvon.
Tuossa esimerkkikoodissasi ComboBox2:n arvoksi asetetaan luku, jolloin tapahtuu implisiittinen muutos luvusta merkkijonoksi. Jos siinä desimaalierottimeksi tulee piste, niin se tarkoittanee, että Excelissä (tai Windowsissa) olet asettanut desimaalierottimeksi pisteen.
Jos sinulla on merkkijono txt jossa on desimaalierottimena piste, niin sen voisi muuttaa merkkijonoksi jossa erottimena on normaali desimaalierotin seuraavasti
cstr(val(txt))
Cxxx muutokset ja implisiittiset muutokset käyttävät ympäristön lokalisaatioasetuksia ja Str ja Val muutokset käyttävät desimaalierottimena aina pistettä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.