2014-02-07 34 views
0

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

我曾尝试复制并粘贴到某个值,并且不会将其更改为数字。 不知道该怎么办。

帮助!

+0

更改'了'Range'到数字的NumberFormat'并检查它是否仍然显示消息 –

+2

只是更改数字格式将不起作用。如果你的范围是'H6:H13',那么你必须在写入单元之前改变格式。例如: 'Range(“H6:H13”)。NumberFormat =“#,## 0”'然后'Range(“H6”)。Value =“Something” –

+0

[VBA:Conver Text - >数乘以1](http://stackoverflow.com/questions/20192371/vba-conver-text-number-multiplying-by-1) –

回答

1

试试这个:

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

编辑:

另一种解决方案。在普拉迪普库马尔的建议建设与准备你的范围,你输入数据之前的交易,改变你的代码,这样的事情

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 
0
Range("H6:H13").NumberFormat = "#,##0" 
+0

不幸的是,这并没有奏效。 – JovialJohn

0

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

  1. 选择列
  2. 选择数据 - 文本分列
  3. 常常默认设置会做,你可以单击Finish。否则,你 必须确保该结果仅仅是一个“常规”栏中

宏正是这样做,这将是这个样子:

Columns("A:A").TextToColumns 

有很多的参数给TextToColumns方法,但它应该只与默认值(即没有参数)正常工作。

+0

谢谢,但问题是这个电子表格是通过电子邮件从用户表单中的VBA代码发送的,因此我想在仍在用户表单代码中解决此问题。 – JovialJohn

+0

我也为它添加了代码 – Sam

相关问题