2016-03-23 25 views
0

Bir süredir Excel VBA kullanıyorum ve daha önce hiç karşılaşmadığım bir sorunla karşılaştım. Lehçe olarak ayarlanmış bir bilgisayar bilgisayarını kullanıyorum, ondalık ayırıcı virgül olarak ayarlandı. Ama bilgisayarım geçmişte benzer şekilde kurulduğunda bile, hiç sorun yaşamadım.Ondalık virgül yerine ondalık virgül kullanarak değişken

Bu geçerli proje, Visio'da bir çizim oluşturur.

Ben Ne beklenebilir VBA hesaplamak olduğunu ifade etti pgeWidth = 550/1.4

olarak hesaplanır tipi ikizi bir değişken

Yani, pageWidth = 392.857... Ancak neyi VBA yapıyor ben de bir ara koyarsanız pgeWidth = 392,857... olduğunu ve pgeWidth değerini kontrol ederek değeri virgül ayırıcıyla gösterir. pgeWidth, Visio'da sayfa genişliği özelliğine ayarlanmış ve bunun 392857 .... mm genişliğinde olması gerektiği açıktı.

VBA neden bir nokta yerine virgül ondalık ayırıcısı kullanıyor?

+0

Excel sayılar, para ve saatleri biçimlendirmek için sisteme yerel ayarlarını kullanın. –

+0

VBA, çıkışındaki bölgesel ondalık simgeye uymaktadır. Görünüşe göre, Visio, Windows Bölgesel ayarlarınızda bu şekilde tanımlanmış olsa bile, ondalık simgeyi virgül olarak kabul etmiyor. Visio'nun hangi sürümü –

+0

Başka bir düşünce, Visio'ya aşina olmayan birinden. Belki de 'Round' veya 'Truncate' değerini alabilirsiniz. Ölçüyü milimetrenin kesirlerine belirtmeniz gerekmeyebilir. Örneğin. pgeWidth = Int (pgeWidth). –

cevap

0

sen noktası ile daha da değer geçmek istiyorsanız, bir dizeye değişken dönüştürme ve daha sonra nokta ile virgül yerine düşünün:

pgeWidth = replace(CStr(pgeWidth), ",",".") 
İlgili konular