关于一般要显示长数字,必须改为文本格式,这样就不能加入千分隔符了。
所以寻求帮忙
1.在excel中输入长18位以上的数字,并能完整显示
2.能在输入后自动加入千分位的分隔符
谢谢的问题
做了一个宏来完成:(增加辅助列或使用分列功能再用函数合并也是办法)
1、输入时加’符号,转换为文本格式
2、选中需要变更格式的区域,然后执行宏
宏内容如下:
Sub li()
Dim s(100), huifu(65535) ‘定义数组s,处理100*3位,即300位
For Each c In Selection
huifu(t) = c。
Value ‘作恢复用,存储当前单元格的值
t = t + 1 ‘递增
temp = c。Value ‘临时变量存储当前单元格的值
Do Until Len(temp) “” Then ‘如果数组的值不为空
temp = temp & “,” & s(i) ‘临时变量等于自身+逗号+当前数组的值
End If
Next i
c。
Value = “‘” & temp ‘转换成文本形式,赋予该单元格新的值
Next
tt = MsgBox(“是否恢复初始值”, vbOKCancel, “警告!”) ‘选择是否恢复初始值
If tt = 1 Then
t = 0
For Each c In Selection
c。
Value = “‘” & huifu(t)
t = t + 1
Next
End If
End Sub
已修改了,更改完之后提示是否恢复初始值。
这样的功能还是不够完善,万一不小心点了取消,再想恢复还是不可能了,干脆把初始值写到新的单元格也不错。
初始值自动写入下一列,要恢复时,自己复制粘贴回去就可以了,可以修改c。Column + 1部份,+1是当前列的下一列,+2是当前列的下两列,+3。。。
Sub li()
Dim s(100) ‘定义数组s,处理100*3位,即300位
For Each c In Selection
Cells(c。
Row, c。Column + 1)。Value = “‘” & c。Value
temp = c。Value ‘临时变量存储当前单元格的值
Do Until Len(temp) “” Then ‘如果数组的值不为空
temp = temp & “,” & s(i) ‘临时变量等于自身+逗号+当前数组的值
End If
Next i
c。
Value = “‘” & temp ‘转换成文本形式,赋予该单元格新的值
Next
End Sub
。