如何格式化excel中的所有数字

时间:2017-10-13 08:21:47

标签: excel vba excel-vba format

我使用excel来存储数据,但其中一些数据是13个字符的数字,excel会自动以科学的方式显示它。

我需要excel才能完全显示它。

示例: 4.01924E + 12 4019238159486

我想在VBA中执行此操作并将其应用于所有数字。

2 个答案:

答案 0 :(得分:2)

在VBA中选择您的范围

 Selection.NumberFormat = "0"

您可能需要循环范围,首先使用Int(cell / 1)* 1)= 0进行测试,以确保您只格式化整数,然后应用格式。我确信有更有效的方法来测试整个工作表并应用格式,但这可以为您提供一般的想法。

你不能使用非常大数字的MOD函数,因为你会溢出。 见这里:Overflow with large numbers using MOD。该链接的答案还推荐了Chip Pearson可以使用的功能。

所以你会得到以下代码:

Public Sub Formatting()

    Dim wb As Workbook
    Dim ws As Worksheet
    Dim rng As Range
    Dim cell As Range

    Set wb = ThisWorkbook
    Set ws = wb.Worksheets("Sheet1")   ' change as appropriate
    Set rng = ws.Range("A1").CurrentRegion

    With ws
        For Each cell In rng.Cells
            With cell
                If Not IsError((Int(cell / 1) * 1) = 0) Then
                    cell.NumberFormat = "0"
                End If
            End With
        Next cell
    End With

End Sub

否则在表格中

突出显示要转换的单元格,然后转到数字标签,展开右下箭头,选择自定义并输入0进行输入。

Formatting

答案 1 :(得分:2)

使用以下内容:

Sub Macro2()
    Selection.SpecialCells(xlCellTypeConstants, 1).NumberFormat = "0"
End Sub