Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VBA: Desimaalierottimeksi pilkku?

Jamro [19.02.2016 17:42:00]

#

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!

Grez [19.02.2016 18:24:00]

#

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ä.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta