簡體   English   中英

如何更改VBA數組十進制分隔符?

[英]How to change VBA array decimal separator?

我想將VBA數組十進制分隔符更改為點。 我將其視為逗號。 我嘗試了: Application.DecimalSeparator="."

但是,當我獲得MyString = matrix(2, 1) ,VBA數組中的小數點分隔符會以逗號形式惡意保留。 我無法除掉害蟲。

有沒有一種方法可以檢測使用哪個VBA陣列系統分隔符?

在此處輸入圖片說明

VBA使用從平台各個部分提取的很多位來計算要使用的十進制和千位分隔符。 Application.DecimalSeparator更改了一些實例(大部分在工作簿上); 您可以在OS級別上調整其他設置,但即使在某些情況下,您也無法更改設置。

最好的選擇是編寫一個簡單的函數,根據例如1.2到字符串的試驗轉換來檢查平台使用的分隔符,並查看第二個字符最終是什么。 粗俗但美麗。

有了這個,您就可以強制互換。 和,視情況而定。 當然,盡管如此,您必須謹慎管理所有字符串以對自己的數字進行解析。

就我個人而言,盡管我認為這是與系統設置不必要的斗爭的縮影。 因此,我會保留一切。 換句話說,笑着忍受。

您必須在系統設置中進行更改,Excel會從系統中獲取這種設置。

我最終得到了該功能,該功能正是我想要的。 謝謝大家的回答,評論和提示。

Function GetVBAdecimalSep()
    Dim a(0) As Variant
    a(0) = 1 / 2
    GetVBAdecimalSep = Mid(a(0), 2, 1)
End Function

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM