Excel精英培训网

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

[已解决]用VBA怎么实现这种简单的合并规律?

[复制链接]
发表于 2011-3-22 14:02 | 显示全部楼层 |阅读模式
用VBA怎么实现这种简单的合并规律?
样本在附件.
最佳答案
2011-3-22 14:30
  1. Sub cc()
  2.     Dim arr()
  3.     For i = 8 To 12    '数据的行数
  4.         mylen = Len(Cells(i, 2))
  5.         ReDim arr(1 To mylen)
  6.         For k = 1 To mylen
  7.             arr(k) = Val(Mid(Cells(i, 2), k))
  8.         Next k
  9.         myyear = Application.Max(arr)
  10.         Cells(i, 6).Value = Left(Cells(i, 3), Len(Cells(i, 3)) - 4) & "-" & myyear & "-" & "<1," & Cells(i, 5) & ",1,False,False>.htm"
  11.         Erase arr
  12.     Next i
  13. End Sub
复制代码

样本.rar

2.43 KB, 下载次数: 19

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2011-3-22 14:25 | 显示全部楼层
  1. Sub test()
  2. Dim arr, arrt(), i%, n$
  3. arr = Range("b8:e" & [b65536].End(3).Row)
  4. ReDim arrt(1 To UBound(arr), 1 To 1)
  5. For i = 1 To UBound(arr)
  6.     n = Mid(arr(i, 1), InStr(1, arr(i, 1), "年度") - 4, 4)
  7.     arrt(i, 1) = Replace(arr(i, 2), ".htm", "-" & n & "-<1," & arr(i, 4) & ",1,False,False>.htm")
  8. Next
  9. Range("f:f").ClearContents
  10. [f8].Resize(UBound(arrt), 1) = arrt
  11. End Sub
复制代码

评分

参与人数 1 +10 收起 理由
xdwy81129 + 10 学习解答的问题

查看全部评分

回复

使用道具 举报

发表于 2011-3-22 14:30 | 显示全部楼层    本楼为最佳答案   
  1. Sub cc()
  2.     Dim arr()
  3.     For i = 8 To 12    '数据的行数
  4.         mylen = Len(Cells(i, 2))
  5.         ReDim arr(1 To mylen)
  6.         For k = 1 To mylen
  7.             arr(k) = Val(Mid(Cells(i, 2), k))
  8.         Next k
  9.         myyear = Application.Max(arr)
  10.         Cells(i, 6).Value = Left(Cells(i, 3), Len(Cells(i, 3)) - 4) & "-" & myyear & "-" & "<1," & Cells(i, 5) & ",1,False,False>.htm"
  11.         Erase arr
  12.     Next i
  13. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2011-3-22 14:36 | 显示全部楼层
回复 mn860429 的帖子

不错,但还有个小毛病,就是如果行数设定超过已有的行数的话,或者中间要是有空行,就是只要遇到空行,就会提示"下标越界".
回复

使用道具 举报

发表于 2011-3-22 15:04 | 显示全部楼层
回复 浪子神剑 的帖子

可以加个if判读,如果为空则跳过该行
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 08:23 , Processed in 0.347745 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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