Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 15084|回复: 7

[已解决]如何将不足位数的数字前面补0

[复制链接]
发表于 2013-6-18 19:20 | 显示全部楼层 |阅读模式
单位为Q的充值点数值是4位数,不为Q的充值点数就是5位数。
不足4或5位的点数前面补0,
最佳答案
2013-6-18 20:19
代码如下:
  1. Sub 按钮1_Click()
  2. '1、注意代码书写格式
  3. '2、注意循环控制结构
  4. '3、注意字符串的FORMAT函数用法
  5. Dim i, j As Integer
  6. Dim tmpStr As String
  7. Dim arr
  8. arr = Range("a7:d" & [b65536].End(3).Row)
  9. j = 1
  10. On Error GoTo Err
  11. For i = 1 To UBound(arr)
  12.     If arr(i, 4) = "Q" Then
  13.         tmpStr = tmpStr & Format(CStr(arr(i, 2)) & Format(CStr(arr(i, 3)), "0000") & CStr(arr(i, 4)), "@@@@@@@@@@@@")
  14.     Else
  15.         tmpStr = tmpStr & Format(CStr(arr(i, 2)) & Format(CStr(arr(i, 3)), "00000"), "@@@@@@@@@@@@")
  16.     End If
  17.     If j Mod 4 = 0 Then
  18.         tmpStr = tmpStr & Chr(10)
  19.     End If
  20.     j = j + 1
  21. Next i
  22. Sheet1.Range("L1") = tmpStr
  23. Err:
  24.     Exit Sub
  25. End Sub
复制代码

点卡充值.zip

9.58 KB, 下载次数: 36

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-6-18 19:52 | 显示全部楼层
你的表中的模块是自己写的吗?在你的基础上修改吗?
回复

使用道具 举报

发表于 2013-6-18 19:55 | 显示全部楼层
  1. Sub t()
  2. Dim str As String
  3. Dim i As Integer
  4. For i = 7 To 15
  5.     If Cells(i, 4) = "Q" Then
  6.         str = str & Cells(i, 2) & Format(Cells(i, 3), "0000Q") & "    "
  7.     Else
  8.          str = str & Cells(i, 2) & Format(Cells(i, 3), "00000") & "    "
  9.     End If
  10. Next
  11. Range("F1")=str

  12. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2013-6-18 19:56 | 显示全部楼层
恩,一半是网上大侠帮写的。一半是自己写的。写的不对。执行不了
回复

使用道具 举报

 楼主| 发表于 2013-6-18 19:58 | 显示全部楼层
实现了功能:在点击确定后,左边明细,自动生成以上格式明细,4个一换行并在一个单元格里。
arr = Range("a7:d" & [b65536].End(3).Row)
For i = 1 To UBound(arr)
rn = rn & "   " & arr(i, 2) & arr(i, 3) & arr(i, 4)
If i Mod 3 = 0 And x = 0 Then
rn = rn & "   " & arr(i, 2) & arr(i, 3) & arr(i, 4) & Chr(10)
End If
Next
Cells(1, "l") = rn
End Sub

单位为Q的充值点数值是4位数,不为Q的充值点数就是5位数。不足4或5位的点数前面补0
这个没有实现
回复

使用道具 举报

发表于 2013-6-18 20:16 | 显示全部楼层
看看能否满足你的要求:

点卡充值.zip

12.16 KB, 下载次数: 36

回复

使用道具 举报

发表于 2013-6-18 20:19 | 显示全部楼层    本楼为最佳答案   
代码如下:
  1. Sub 按钮1_Click()
  2. '1、注意代码书写格式
  3. '2、注意循环控制结构
  4. '3、注意字符串的FORMAT函数用法
  5. Dim i, j As Integer
  6. Dim tmpStr As String
  7. Dim arr
  8. arr = Range("a7:d" & [b65536].End(3).Row)
  9. j = 1
  10. On Error GoTo Err
  11. For i = 1 To UBound(arr)
  12.     If arr(i, 4) = "Q" Then
  13.         tmpStr = tmpStr & Format(CStr(arr(i, 2)) & Format(CStr(arr(i, 3)), "0000") & CStr(arr(i, 4)), "@@@@@@@@@@@@")
  14.     Else
  15.         tmpStr = tmpStr & Format(CStr(arr(i, 2)) & Format(CStr(arr(i, 3)), "00000"), "@@@@@@@@@@@@")
  16.     End If
  17.     If j Mod 4 = 0 Then
  18.         tmpStr = tmpStr & Chr(10)
  19.     End If
  20.     j = j + 1
  21. Next i
  22. Sheet1.Range("L1") = tmpStr
  23. Err:
  24.     Exit Sub
  25. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2013-6-18 20:31 | 显示全部楼层
是用format,非常感谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-12 16:59 , Processed in 0.409400 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表