Excel精英培训网

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

[已解决]第11集习题第二题

[复制链接]
发表于 2015-8-18 11:05 | 显示全部楼层 |阅读模式
本帖最后由 小鹏的天空 于 2015-8-18 17:08 编辑

自己编的程序怎么运行不了,请指教,谢谢
最佳答案
2015-8-18 17:06
小鹏的天空 发表于 2015-8-18 17:02
不好意思,你的程序提示出错,运行不了,提示“运行时错误5,无效的过程调用或参数”

如果出错,那可能是没有符合条件的数据。
可用下面的试试。加了一个防错不提示。
  1. Sub 选行()
  2. On Error Resume Next
  3. Dim Rng As Range, a$
  4. For Each Rng In Range("a2:c12")
  5.      If Val(Rng.Value) > 0 Then a = a & Rng.Row & ":" & Rng.Row & ","
  6. Next
  7. Range(Left(a, Len(a) - 1)).Select
  8. End Sub
复制代码

第11集练习题.zip

7.45 KB, 下载次数: 5

发表于 2015-8-18 11:13 | 显示全部楼层
题目1是对的,题目2改为:
  1. Sub 选行()
  2.     Dim Rng As Range, SelRng As Range
  3.     For Each Rng In Range("a2:c12")
  4.       If Val(Rng.Value) > 0 Then
  5.         If SelRng Is Nothing Then Set SelRng = Rows(Rng.Row) Else Set SelRng = Union(SelRng, Rows(Rng.Row))
  6.       End If
  7.     Next
  8.     If Not SelRng Is Nothing Then SelRng.Select
  9. End Sub
复制代码
回复

使用道具 举报

发表于 2015-8-18 12:14 | 显示全部楼层
  1. Sub 选行()
  2. Dim Rng As Range, a$
  3. For Each Rng In Range("a2:c12")
  4.      If Val(Rng.Value) > 0 Then a = a & Rng.Row & ":" & Rng.Row & ","
  5. Next
  6. Range(Left(a, Len(a) - 1)).Select
  7. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2015-8-18 17:02 | 显示全部楼层
gufengaoyue 发表于 2015-8-18 12:14

不好意思,你的程序提示出错,运行不了,提示“运行时错误5,无效的过程调用或参数”
回复

使用道具 举报

发表于 2015-8-18 17:06 | 显示全部楼层    本楼为最佳答案   
小鹏的天空 发表于 2015-8-18 17:02
不好意思,你的程序提示出错,运行不了,提示“运行时错误5,无效的过程调用或参数”

如果出错,那可能是没有符合条件的数据。
可用下面的试试。加了一个防错不提示。
  1. Sub 选行()
  2. On Error Resume Next
  3. Dim Rng As Range, a$
  4. For Each Rng In Range("a2:c12")
  5.      If Val(Rng.Value) > 0 Then a = a & Rng.Row & ":" & Rng.Row & ","
  6. Next
  7. Range(Left(a, Len(a) - 1)).Select
  8. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2015-8-18 17:06 | 显示全部楼层
小鹏的天空 发表于 2015-8-18 17:02
不好意思,你的程序提示出错,运行不了,提示“运行时错误5,无效的过程调用或参数”

不好意思,看错了,可以的,谢谢老师。{:1112:}
回复

使用道具 举报

 楼主| 发表于 2015-8-18 17:15 | 显示全部楼层
gufengaoyue 发表于 2015-8-18 17:06
如果出错,那可能是没有符合条件的数据。
可用下面的试试。加了一个防错不提示。

Then a = a & Rng.Row & ":" & Rng.Row & ","
Range(Left(a, Len(a) - 1)).Select
老师,能解释下这两句的作用吗,有些语法没学过,看不太懂,谢谢
回复

使用道具 举报

发表于 2015-8-18 17:20 | 显示全部楼层
就是把这些行号放一起,如第2,5,8行
则 a= "2:2,5:5,8:8,"
range(2:2,5:5,8:8) = 第2+5+8行
回复

使用道具 举报

 楼主| 发表于 2015-8-24 09:16 | 显示全部楼层
老师,不好意思,还要请教下你第12集的答案,自己编的总觉得差点什么,你的水平真高,以后还要向您多学习,谢谢

VBA80第12集_特殊单元格定位.zip

165.08 KB, 下载次数: 1

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 02:22 , Processed in 0.356737 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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