vba操作excel列

逗号xzlhs 2014-05-06 09:16:57
有这样一个需求,我一个excel文件,F列的内容,是文本的,如果这一列各个单元格的长度是6位,不处理,如果是5位,在这个数值前面加一个0,如果是4位,在这个单元格前面加 00,还有一点是我的excel数据比较大,有4W多条,代码最好效率高点,谢谢各位高手赐教vba代码
...全文
515 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljr_aa 2014-07-15
  • 打赏
  • 举报
回复
xlsheet.cells(1,1)="'" & format(输入的数据,"000000")
ljr_aa 2014-07-15
  • 打赏
  • 举报
回复
都在搞股票,以为自己有小聪明。。。
蓝天630902 2014-07-15
  • 打赏
  • 举报
回复

Sub 格式化单元格数据()
    Cells.NumberFormat = "000000"
End Sub
buctcub 2014-07-13
  • 打赏
  • 举报
回复
哈哈 只加零么?深圳的股票 前面还要加上SZ啊 上证前面加SH???忘了。。。我记得我最开始写一个和股票相关的东东,也要用到这个代码。。。
wj2008wh 2014-07-12
  • 打赏
  • 举报
回复
版主辛苦了,很有帮助。
yyyydddd8888 2014-05-06
  • 打赏
  • 举报
回复
请试试这段VBA代码: Sub test() Dim arr, i&, j& arr = Range("f1:f" & Range("f" & Rows.Count).End(3).Row) For i = 1 To UBound(arr) arr(i, 1) = VBA.String(6 - Len(arr(i, 1)), "0") & arr(i, 1) Next i Range("f1").Resize(UBound(arr)) = arr End Sub
一如既往哈 2014-05-06
  • 打赏
  • 举报
回复
如果是数字的好办,可以参考下面的代码:

Sub Test()
    Dim i As Single
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    i = Timer ''记录开始时间
    ''设置a1单元格格式
    Range("a1").NumberFormatLocal = "000000"
    Range("a1").Copy
    ''开始粘贴格式
    Range("a2:a65536").PasteSpecial Paste:=xlPasteFormats ',  Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    Range("a1").Activate
    Debug.Print Timer - i
    Application.ScreenUpdating = True
    Application.EnableEvents = True
End Sub

2,462

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧