Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将Excel中作为文本的数字转换为数字?_Excel_Vbscript_Vba - Fatal编程技术网

如何将Excel中作为文本的数字转换为数字?

如何将Excel中作为文本的数字转换为数字?,excel,vbscript,vba,Excel,Vbscript,Vba,我刚刚运行了一个宏,得到以下结果: Sub Macro1() ' ' Macro1 Macro ' ' Columns("B:B").Select Range("B4").Activate Selection.NumberFormat = "0.00" Selection.NumberFormat = "@" End Sub 现在无法理解Selection.NumberFormat=“0.00”和Selection.NumberFormat=“@”之间的区别,

我刚刚运行了一个宏,得到以下结果:

Sub Macro1()
'
' Macro1 Macro
'

'
    Columns("B:B").Select
    Range("B4").Activate
    Selection.NumberFormat = "0.00"
    Selection.NumberFormat = "@"
End Sub
现在无法理解
Selection.NumberFormat=“0.00”
Selection.NumberFormat=“@”
之间的区别,您能帮我理解吗

我还试图将Excel中的一些数字文本转换为数字。这样做的好语法是什么?

快照:

编辑

我试图将存储为
text
的所有数字转换为下面的数字,但没有任何更改。如果我错了,请指导:

objSheet1.Columns(11).NumberFormat = "0"

要将存储在单元格中的数字文本转换为数字,可以尝试以下操作:

Sub ConvertTextInCellToNumber(ByVal cellLocation As String)

Dim txt As String
txt = range(cellLocation).text

On Error GoTo Catch

Dim txtAsNumber As Double
txtAsNumber = txt

range(cellLocation).Value = txtAsNumber

Catch:

End Sub

这就是你想要的吗

Sub Sample()
    Dim ws As Worksheet
    Dim lRow As Long, i As Long

    '~~> Change this to the relevant sheet name
    Set ws = ThisWorkbook.Sheets("Sheet1")

    With ws
        '~~> Col B
        .Columns(2).NumberFormat = "0.00"

        '~~> Get the last row
        lRow = .Range("B" & .Rows.Count).End(xlUp).Row

        For i = 1 To lRow
            .Range("B" & i).Formula = .Range("B" & i).Value
        Next i
    End With
End Sub
屏幕截图


请阅读我的第二个问题!我在列中有一些数字作为
文本
,但我想将它们转换为列级别本身的
数字。假设我有数字
456676
334562
,但它们是
text
格式,导致比较不匹配!请查看屏幕截图我们可以在列级别进行操作,而不是逐个单元格进行操作吗?请查看我的编辑,但在列级别没有任何更改。请帮帮我!请看我的描述,在那里你可以看到数字,上面有一个绿色的符号。现在,如果我单击该图标,它会让我有机会将
文本更改为Number
。但我想做同样的动态。但是我怎么能这样做呢?是的,它正在运行,但是它的名称是
58307132.00
——应该是
58307132
。怎么做?提示;)请参见上面代码中的行
.Columns(2).NumberFormat=“0.00”
。是的,我已经看到了,但是我是否应该仅将其更改为
0