Excel VBA - 将用户表单中输入的字符串转换为数字

时间:2014-02-07 12:00:22

标签: excel-vba vba excel

我有一个用户输入数字的Excel用户表单,当这些数字输入到电子表格中时,它们会显示通知这是一个存储为文本的数字。 = SUM(H6:H13)显示零结果。 我试过 NumCrtn = cLng(NumCrtn) - 不将单元格更改为数字,公式仍显示为零。 我试过 NumCrtn = Val(NumCrtn) - 不会将单元格更改为数字,公式仍显示为零。

我尝试过copy和paste.special到一个值,并且不会将其更改为数字。 不知道该怎么做。

帮助!

3 个答案:

答案 0 :(得分:1)

试试这个:

With Range("H6:H13")
    .NumberFormat = "0"
    .Value = .Value
End With

修改

另一种解决方案。基于Pradeep Kumar的建议,在您输入数据之前处理准备您的范围,将您的代码更改为此类

Private Sub UserForm_Initialize()
    Dim aCell As Range

    Range("H6:H13").NumberFormat = "0"

    'This is to cater for any previous values if filled in
    For Each aCell In Range("H6:H13")
        aCell.Formula = aCell.Value
    Next
End Sub

Private Sub CommandButton1_Click()
    'Entering value for H6
    Range("H6").Value = TextBox1.Value
End Sub

答案 1 :(得分:0)

Range("H6:H13").NumberFormat = "#,##0"

答案 2 :(得分:0)

它不是VBA解决方案,而是普通的Excel解决方案 这样做

  1. 选择列
  2. 选择数据 - 文本到列
  3. 通常会使用默认设置,您可以单击“完成”。否则你 必须确保结果只是一个“常规”栏目
  4. 执行此操作的宏看起来像这样:

    Columns("A:A").TextToColumns
    

    TextToColumns方法有很多参数,但它应该只能使用默认值(即没有参数)。