Excel精英培训网

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

[已解决]帮忙修改一下代码

[复制链接]
发表于 2014-1-5 15:54 | 显示全部楼层 |阅读模式
要求
我想把下面《1。2。3。4。5。6。特》第3行至第6H列EXC列 所有单元格里面的数字有包含右边括号里面其中两个"A"或两个以上"AA"把单元格替换成空格
帮看一下下面这代码怎么修改,下面这代码是只运行第3行的数据,我想把这代码修改成运行第3行第6行的数据,
Sub 代码()

Dim arr, sh&, j&

For sh = 3 To 9

  arr = Sheets(sh).[h3:exc3]

  For j = 1 To UBound(arr, 2) Step 2

    If Len(arr(1, j)) - Len(Replace(arr(1, j), "A", "")) >= 2 Then arr(1, j) = ""

  Next j

  Sheets(sh).[h3].Resize(, UBound(arr, 2)) = arr

Next sh

End Sub
最佳答案
2014-1-6 14:31
  1.     For sh = 1 To 6
  2.         arr = Worksheets(CStr(sh)).[h3:exc9]
  3.         For i = 1 To UBound(arr)
  4.             For j = 1 To UBound(arr, 2) Step 2
  5.                 If Len(arr(i, j)) - Len(Replace(arr(i, j), "A", "")) >= 2 Then arr(i, j) = ""
  6.             Next j
  7.         Next
  8.         Worksheets(CStr(sh)).[h3].Resize(UBound(arr), UBound(arr, 2)) = arr
  9.     Next sh
复制代码
第一次是工作表,第二层是行,第三层是列

表.zip

309.66 KB, 下载次数: 6

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-1-6 13:07 | 显示全部楼层
Sheets(sh).[h3:exc3]
这里定死是第3行的,你改成你需要的就OK了。
回复

使用道具 举报

发表于 2014-1-6 13:11 | 显示全部楼层
  1. Sub 代码()
  2.     Dim arr, sh&, j&
  3.     For sh = 1 To 6
  4.         arr = Worksheets(CStr(sh)).[h3:exc9]
  5.         For j = 1 To UBound(arr, 2) Step 2
  6.             If Len(arr(1, j)) - Len(Replace(arr(1, j), "A", "")) >= 2 Then arr(1, j) = ""
  7.         Next j
  8.         Worksheets(CStr(sh)).[h3].Resize(, UBound(arr, 2)) = arr
  9.     Next sh
  10. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2014-1-6 14:23 | 显示全部楼层
hwc2ycy 发表于 2014-1-6 13:11

你好,修改了还是不行啊,还是只能运行第3行
回复

使用道具 举报

发表于 2014-1-6 14:26 | 显示全部楼层
这也改吧。For j = 1 To UBound(arr, 2) Step 2
去掉step 2
你是要每行都运行不?
回复

使用道具 举报

发表于 2014-1-6 14:29 | 显示全部楼层
看错了,还是少一层循环的。
回复

使用道具 举报

发表于 2014-1-6 14:31 | 显示全部楼层    本楼为最佳答案   
  1.     For sh = 1 To 6
  2.         arr = Worksheets(CStr(sh)).[h3:exc9]
  3.         For i = 1 To UBound(arr)
  4.             For j = 1 To UBound(arr, 2) Step 2
  5.                 If Len(arr(i, j)) - Len(Replace(arr(i, j), "A", "")) >= 2 Then arr(i, j) = ""
  6.             Next j
  7.         Next
  8.         Worksheets(CStr(sh)).[h3].Resize(UBound(arr), UBound(arr, 2)) = arr
  9.     Next sh
复制代码
第一次是工作表,第二层是行,第三层是列
回复

使用道具 举报

 楼主| 发表于 2014-1-6 14:56 | 显示全部楼层
hwc2ycy 发表于 2014-1-6 14:31
第一次是工作表,第二层是行,第三层是列

谢谢,十分感谢你的帮忙 ,
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-18 23:04 , Processed in 0.341416 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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