使用VBA确定Excel中的小数分隔符

时间:2016-05-02 19:48:06

标签: excel excel-formula

我经常需要与其他需要填写的人共享文件。

我的客户输入的一些数据是需要在具有TEXT功能的某些(已锁定)单元格中格式化的数字。问题是我不知道客户是否在其区域设置(或Excel设置)中将句点或逗号设置为小数点分隔符。我知道使用VBA可以轻松解决问题,但.xlsm文件不是一个选项。此外,该文件至少需要与Excel 2007兼容!

我搜索了网页,但似乎没有纯Excel功能的解决方案?!

我设法使用以下方法来规避这一点:

  1. 我创建(在隐藏+锁定单元格或隐藏工作表中)三个(工作簿)命名范围
  2. enter image description here

    testNumber = 1.23(不一定是命名范围)

    sepDec => = IF(testNumber = VALUE(TEXT(testNumber," 0.00")),"。",",")

    sepTh => = IF(sepDec ="。",",","。")

    1. 在工作簿的其他地方,我使用TEXT函数
    2. = TEXT(cellAddress,"#"& sepTh&" ## 0"& sepDec&" 0000")

      我想知道是否有更好更简单的方法,或者我错过了什么,MS有解决方案?!

2 个答案:

答案 0 :(得分:1)

在工作簿范围内使用公式dec_sep创建=MID(TEXT(1/2, "@"),2,1)用户定义的名称。然后在公式中使用dec_sep作为小数点分隔符。因此,可以使用未知的小数点分隔符。

答案 1 :(得分:0)

如果您对Text()函数所做的只是格式化数字,并且单元格被锁定,无论如何,您也可以将数字放入单元格并使用所需的数字格式格式化单元格。然后Excel将在具有不同小数分隔符的计算机上打开文件时处理其余部分。