Excel精英培训网

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

[已解决]变量的区域表示方法,求助帖

[复制链接]
发表于 2012-7-21 21:02 | 显示全部楼层 |阅读模式
在学习VBA80第4集循环语句时,里面有个示例就是断点的代码,原案例中是在断点后的那个单元格里输入“断点”两字,我看那个示例中为了方便观看,把断点处的两个单元格的颜色给变了,就想弄个代码实现这点。
Sub s2()
Dim x As Integer
Do
   x = x + 1
   If Cells(x + 1, 1) <> Cells(x, 1) + 1 Then
      Cells(x, 2) = "断点"
      Exit Do
   End If
Loop Until x = 14
End Sub
以上是原代码,我把红色的部分换成
     range("a"&x:"a"&x+1).Interior.ColorIndex=3
结果报错了,最后只好把这句分成 range("a"&x)=3
                                                  range("a"&x+1)=3
解决了暂时性的问题,但如果这个区域有很多个单元格呢,那我不累死了呀,所以求助网上热心的朋友,像这种区域变量在range中的表示到底怎么写代码呢?如果RANGE不能达到这个效果用什么解决这问题呢?
最佳答案
2012-7-21 21:19
Sub s2()
Dim x As Integer
Do
   x = x + 1
   If Cells(x + 1, 1) <> Cells(x, 1) + 1 Then
       Range("a" & x).Resize(2, 1).Interior.ColorIndex = 3
      Exit Do
   End If
Loop Until x = 14
End Sub
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-7-21 21:15 | 显示全部楼层
range("a"&x:"a"&x+1).Interior.ColorIndex=3   换成
range("a"&x).Interior.ColorIndex =3  and range("a"&x+1).Interior.ColorIndex=3
试试呢???我也学习中,呵呵!
回复

使用道具 举报

发表于 2012-7-21 21:19 | 显示全部楼层    本楼为最佳答案   
Sub s2()
Dim x As Integer
Do
   x = x + 1
   If Cells(x + 1, 1) <> Cells(x, 1) + 1 Then
       Range("a" & x).Resize(2, 1).Interior.ColorIndex = 3
      Exit Do
   End If
Loop Until x = 14
End Sub
回复

使用道具 举报

发表于 2012-7-21 22:07 | 显示全部楼层
range("a"&x:"a"&x+1).Interior.ColorIndex=3

请记得:是作为文本的一部分,应该包含在双引号中

正确的写法是  range("a" & x &":a" & x+1).Interior.ColorIndex=3
回复

使用道具 举报

发表于 2012-7-21 22:08 | 显示全部楼层
range("a"&x:"a"&x+1).Interior.ColorIndex=3

请记得:是作为文本的一部分,应该包含在双引号中

正确的写法是  range("a" & x &":a" & x+1).Interior.ColorIndex=3
回复

使用道具 举报

发表于 2012-7-21 22:09 | 显示全部楼层
3楼完美
回复

使用道具 举报

发表于 2012-7-21 22:15 | 显示全部楼层
range("a"&x:"a"&x+1).Interior.ColorIndex=3

请记得:是作为文本的一部分,应该包含在双引号中

正确的写法是  range("a" & x &":a" & x+1).Interior.ColorIndex=3
回复

使用道具 举报

 楼主| 发表于 2012-7-22 12:54 | 显示全部楼层
嗯,3楼的方法不错,也是兰版中讲过的知识点,看时看过了没太放心上,今天又重新看了遍,发现除了3楼那种解法外,用RANGE也是可以表示的,那就是
range("a" & x &,"a" & x+1).Interior.ColorIndex=3,
记住这个用的是range(起点单元格,终点单元格)的方法来表示区域的,中间是逗号,而用:好像不管怎么样都是不行的。
suye1010这位朋友很是热心呀,估计还有点网速卡,抢了好几个板凳呢,谢谢捧场呀。
综上所述3楼最佳了{:4212:}
回复

使用道具 举报

 楼主| 发表于 2012-7-22 12:57 | 显示全部楼层
可惜我自己不能给自己最佳 ,我发现自己也还是很棒的嘛,发散性思维,多角度思考,我可以做得更好的,自己赞自己个先{:3512:}
回复

使用道具 举报

 楼主| 发表于 2012-7-22 19:02 | 显示全部楼层
suye1010 发表于 2012-7-21 22:15
range("a"&x:"a"&x+1).Interior.ColorIndex=3

请记得:是作为文本的一部分,应该包含在双引号中

你这个我试过了,不行呀。在Range中想用:来表示变量的区域好像是不行的,但是用,是可以的,比如这个问题,我发现改成如下所示的表示方法即可
range("a" & x &,"a" & x+1).Interior.ColorIndex=3
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-19 07:26 , Processed in 0.296011 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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