繁体   English   中英

如何在Excel中将点固定为小数点分隔符

[英]How to fix dot as the decimal separator in excel

有一个小问题,但我做错了。 也许有人可以帮助我。 申请者很多。
我的小数点分隔符区域设置为“。” (点)。
我有一个Excel文件,其中某些列中包含小数位。 在Excel模板中更新数据时,我关闭了用户系统设置,然后将DOT用作分隔符。 在将其转换为文本文件时,它会显示逗号“,”作为小数点分隔符。 我通过使用以下代码来切换用户设置

随着申请
StrDecimal = .DecimalSeparator
StrThousand = .Thousands分隔符

.DecimalSeparator = "."  
.ThousandsSeparator = "'" 
.UseSystemSeparators = False  
End With  

需要检查十进制分隔符是否不等于“”。 那么我们需要强制使用“。” aS十进制分隔符。

请帮助使用VBA或Datavalidation实现此目的
提前非常感谢您!

因此,您已经有了数据,并将其写入文本文件。 假设您的数据在数组中,我将遍历该数组并在将其转换为字符串后将其转换为数据。

Sub ChangeDecimalSeperator()
    Dim vData As Variant, ii As Integer, jj As Integer

    vData = ActiveSheet.Range("A1:B2")
    For ii = LBound(vData, 1) To UBound(vData, 1)
        For jj = LBound(vData) To UBound(vData, 2)
            'Only convert if it's a number
            If VBA.IsNumeric(vData(ii, jj)) Then
                'You can also specify the format using VBA.Format$() here, ie force the decimal places
                vData(ii, jj) = ReplaceCharacter(VBA.CStr(vData(ii, jj)), ".", ",")
            End If
        Next jj
    Next ii

    'Now output vData to your textfile

End Sub


Function ReplaceCharacter(sForString As String, sReplacingCharacter As String, sWithCharacter As String) As String
    Dim sStringPrevious As String

    'While there is a character that we still need replacing left, keep going. If we can't find one, we're done
    Do
        sStringPrevious = sForString
        sForString = VBA.Replace(sForString, sReplacingCharacter, sWithCharacter)
    Loop Until sStringPrevious = sForString

    ReplaceCharacter = sForString
End Function

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM