Excel精英培训网

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

[习题] VBA培训的第11讲练习题答案,纯粹的菜鸟多指教。

[复制链接]
发表于 2012-12-15 22:35 | 显示全部楼层 |阅读模式
Sub 题目一()
[a1:c4].Select
Dim rng As Range
    For Each rng In Selection
        If Val(rng) > 0 Then
            rng.Value = "正数"
         End If
    Next
End Sub


Sub 题目二()
Dim rg As Range
Dim rx As Range
Dim x As Integer
  Set rg = Rows(2)
  For x = 3 To 12
    If Val(Cells(x, 1)) Or Val(Cells(x, 2)) > 0 Or Val(Cells(x, 3)) > 0 Then
       Set rx = Rows(x)
       Set rg = Union(rg, rx)
    End If
  Next
rg.Select
End Sub

我想问的是:为什么给对象变量赋值的代码位置和给数值变量赋值的代码位置互换后就出错了呢?要遵循什么原则吗?
上面的代码是我又重新把前面的几讲又看了一遍,又参考了别人的代码才弄出来的,有点晕呀!
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-12-15 23:06 | 显示全部楼层
多F8一下,你就明白了。
首先你得明白程序要实现什么功能。

评分

参与人数 1 +1 收起 理由
金樽空对月 + 1 赞一个!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2012-12-16 19:35 | 显示全部楼层
谢谢,明白了,如果换了位置的话,等到第二次循环时就变成对象循环了,而不是要的数值循环了,就出错了。不知道这样解释确切不?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-12 14:10 , Processed in 0.604638 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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