2013-04-24 34 views
3

有些人在我周圍使用Windows/Office中的國家本地化。不幸的是,這導致我的宏無法做簡單的數學運算,因爲他們使用逗號作爲小數位和pov-ray文件,我正在編輯,使用逗號僅用於列表分隔符並指向小數點。我知道,在Excel中可以使用VBA字 - 更改小數分隔符

With Application. 
    .DecimalSeparator = "." 
    .ThousandsSeparator = "," 
    .UseSystemSeparators = False 
End With 

但是有沒有像DecimalSeparator在MS Word應用中沒有這樣的屬性覆蓋系統小數點分隔符。 MS Word中有一個簡單的方法可以在宏運行的時候覆蓋系統分隔符?還是我需要努力去取代他們在閱讀povray文件?

+0

我找不到那樣的東西。我檢查了'應用程序,全局'和'選項'屬性,但沒有類似的。但使用系統設置或API時可能有任何解決方案 - 不知道... – 2013-04-24 12:24:19

+0

您可以從「Application.International」屬性中確定當前值 - 例如'Debug.Print Application.International(wdDecimalSeparator)'參見'wdInternationalIndex'枚舉[這裏](http://msdn.microsoft.com/en-us/library/office/ff191922.aspx) – barrowc 2013-04-25 00:56:54

回答

2

不是很有耐心,我做了「更難的方法」。我聲明公共變量

Public strDecimal As String 

,然後在主分開始,我將其值設置有:

strDecimal = Application.International(wdDecimalSeparator) 

然後在源我更換了所有的讀取插件一樣

CDbl(strShort(5)) 

CDbl(Replace(strShort(5), ".", strDecimal)) 

和所有寫奏狀

Selection.TypeText Text:=CStr(Int(1000 * bondRadius)/1000) 

Selection.TypeText Text:=CStr(Replace(Int(1000 * bondRadius)/1000, strDecimal, ".")) 

這並不是因爲覆蓋系統設定的優雅,但它並沒有拿我太多的時間和我的作品。如果有人可以看到理由,爲什麼它有時會失敗,請留下一些意見。

我會玩barrowc的評論(thanx)的信息,看看它是隻讀還是讀寫值。