|
使用VBA常用小代码:一键将总表数据拆分为多个分表时,如拆分的总表内包含身份证数列的(18位号码),拆分后分表身份证号码列显示为5.22222E+17 调整显示格式后,后三位显示为000,如何破?求高手指点。以下是部分拆分代码 Sub NewShts()
Dim d As Object, sht As Worksheet, arr, brr, r, kr, i&, j&, k&, x&
Dim Rng As Range, Rg As Range, tRow&, tCol&, aCol&, pd&
Application.ScreenUpdating = False'关闭屏幕更新
Application.DisplayAlerts = False'关闭警告信息提示
Set d = CreateObject(“scripting.dictionary”) 'set字典
Set Rg = Application.InputBox(“请框选拆分依据列!只能选择单列单元格区域!”, Title:= “提示 “, Type:=8)
'用户选择的拆分依据列
tCol = Rg.Column '取拆分依据列列标
tRow = Val(Application.InputBox( “请输入总表标题行的行数? “))
'用户设置总表的标题行数
If tRow = 0 Then MsgBox “你未输入标题行行数,程序退出。 “: Exit Sub
Set Rng = ActiveSheet.UsedRange '总表的数据区域
arr = Rng '数据范围装入数组arr
tCol = tCol - Rng.Column + 1 '计算依据列在数组中的位置
aCol = UBound(arr, 2) '数据源的列数
For i = tRow + 1 To UBound(arr) '遍历数组arr
If Not d.exists(arr(i, tCol)) Then
d(arr(i, tCol)) = i '字典中不存在关键词则将行号装入字典 |
|