Excel精英培训网

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

[已解决]下面的代码可以简化吗?

[复制链接]
发表于 2011-1-14 21:48 | 显示全部楼层 |阅读模式
555.jpg

  1. Sub 宏()
  2.     Dim rng As Range
  3.     For a = 1 To 12
  4.         If Cells(a, 1) Mod 2 = 0 Then
  5.             Set rng = Cells(a, 1)
  6.             Exit For
  7.         End If
  8.     Next
  9.     For b = 1 To 12
  10.         If Cells(b, 1) Mod 2 = 0 Then
  11.             Set rng = Union(rng, Cells(b, 1))
  12.         End If
  13.     Next b
  14.     rng.Select
  15. End Sub
复制代码
{:011:}


最佳答案
2011-1-14 21:57
Sub 宏()
    Dim rng As Range
    dim a as long
       For a = 1 To 12
        If Cells(b, 1) Mod 2 = 0 Then
           if rng is nothing then
             Set rng = Cells(a, 1)
            else
            Set rng = Union(rng, Cells(b, 1))
            end if
        End If
    Next a
    rng.Select
End Sub
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2011-1-14 21:57 | 显示全部楼层    本楼为最佳答案   
Sub 宏()
    Dim rng As Range
    dim a as long
       For a = 1 To 12
        If Cells(b, 1) Mod 2 = 0 Then
           if rng is nothing then
             Set rng = Cells(a, 1)
            else
            Set rng = Union(rng, Cells(b, 1))
            end if
        End If
    Next a
    rng.Select
End Sub

评分

参与人数 1 +20 收起 理由
瑾暟 + 20 最佳答案奖励.

查看全部评分

回复

使用道具 举报

发表于 2011-1-14 21:57 | 显示全部楼层
回复

使用道具 举报

发表于 2011-1-14 22:08 | 显示全部楼层
本帖最后由 搁浅2008 于 2011-1-14 22:08 编辑

Sub 宏()
    Dim rng As Range
    For a = 1 To 12
        If Cells(a, 1) Mod 2 = 0 Then
            Set rng = Cells(a, 1)
            Exit For
        End If
    Next
    For b =a To 12
        If Cells(b, 1) Mod 2 = 0 Then
            Set rng = Union(rng, Cells(b, 1))
        End If
    Next b
    rng.Select
End Sub

点评

貌似a 改为a+1要好一些。  发表于 2011-1-15 12:43
回复

使用道具 举报

发表于 2011-1-14 22:53 | 显示全部楼层
本帖最后由 pzh130 于 2011-1-14 22:54 编辑

PS :你们怎么弄的可以复制代码
  1. ...
复制代码
指这个?[code ]... [/code ]
回复

使用道具 举报

发表于 2011-1-15 00:44 | 显示全部楼层

Sub 宏()
    Dim rng As Range
    For a = 1 To 12
        If Cells(a, 1) Mod 2 = 0 Then
            Set rng = Cells(a, 1)
            Exit For
        End If
    Next
    For b =a To 12
        If Cells(b, 1) Mod 2 = 0 Then
            Set rng = Union(rng, Cells(b, 1))
        End If
    Next b
    rng.Select
End Sub

搁老这代码完整不重复,学习了

回复

使用道具 举报

发表于 2011-1-15 00:46 | 显示全部楼层
本帖最后由 fjmxwrs 于 2011-1-15 00:48 编辑
  1. Sub 宏()
  2.       Dim rng As Range
  3.       For a = 1 To 12
  4.           If Cells(a, 1) Mod 2 = 0 Then
  5.                 Set rng = Cells(a, 1)
  6.                 Exit For
  7.           End If
  8.      Next
  9.      For b =a To 12
  10.           If Cells(b, 1) Mod 2 = 0 Then
  11.                  Set rng = Union(rng, Cells(b, 1))
  12.            End If
  13.      Next b
  14.      rng.Select
  15. End Sub

复制代码

学习下怎么有这功能
回复

使用道具 举报

发表于 2011-1-15 08:03 | 显示全部楼层
学习代码
回复

使用道具 举报

发表于 2011-1-15 08:39 | 显示全部楼层
一天一点学习,一天一点进步
回复

使用道具 举报

发表于 2011-1-28 14:34 | 显示全部楼层
学习最佳答案!!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-15 02:22 , Processed in 0.306410 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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