我使用excel来存储数据,但其中一些数据是13个字符的数字,excel会自动以科学的方式显示它。
我需要excel才能完全显示它。
示例: 4.01924E + 12 至 4019238159486
我想在VBA中执行此操作并将其应用于所有数字。
答案 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进行输入。
答案 1 :(得分:2)
使用以下内容:
Sub Macro2()
Selection.SpecialCells(xlCellTypeConstants, 1).NumberFormat = "0"
End Sub