Excel精英培训网

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

[已解决]连续单元格区域的顶端如何表示

[复制链接]
发表于 2013-10-26 16:24 | 显示全部楼层 |阅读模式
rg是单列中连续单元格区域的变量,请教老师:何用VBA代码表示rg的顶端的单元格?
最佳答案
2013-10-26 17:33
本帖最后由 yyyydddd8888 于 2013-10-27 11:56 编辑
wjp023 发表于 2013-10-26 16:32
变量已经给予了赋值.现在考虑的是如何找到rg顶端那个单元格?
我是这样赋值的:
    Dim rg As Range

单元格区域的range("a1")就是表示这个单元格区域的第一行第一列这个单元格,比如后rg.range("b1")表示rg这个区域的第一行第二列的单元格,rg.range("c5")表示rg这个单元格区域的第五行第三列这个单元格。当然rg.range("b1")与rg.cells(1,2)表示相同的单元格,就是rg这个区域的第一行第二列这个单元格。rg.range("c5")等同于rg.cells(5,3),都表示rg这个区域的第五行第三列这个单元格。
所以不管rg是哪一个区域,rg.range("a1") 都表示这个区域的第一个单元格,与你说的rg.cells(1)是相同的作用。
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-10-26 16:26 | 显示全部楼层
你这个是不是在具体说明哈啊 变量 怎么知道rg的顶端的单元格?  第一个不就是嘛
回复

使用道具 举报

发表于 2013-10-26 16:27 | 显示全部楼层
可以用rg.range("a1")表示它的顶端单元格
回复

使用道具 举报

 楼主| 发表于 2013-10-26 16:30 | 显示全部楼层
yyyydddd8888 发表于 2013-10-26 16:27
可以用rg.range("a1")表示它的顶端单元格

可rg区域内,a1有时并没在顶端呀?
回复

使用道具 举报

 楼主| 发表于 2013-10-26 16:32 | 显示全部楼层
我心飞翔410 发表于 2013-10-26 16:26
你这个是不是在具体说明哈啊 变量 怎么知道rg的顶端的单元格?  第一个不就是嘛

变量已经给予了赋值.现在考虑的是如何找到rg顶端那个单元格?
我是这样赋值的:
    Dim rg As Range
   If (TextBox1.Value <> "" Or TextBox2.Value <> "") And CheckBox1.Value = True Then
   MsgBox "首尾行和全部不能同时选!"
   Exit Sub
ElseIf TextBox1.Value = "" Or TextBox2.Value = "" Then
   MsgBox "首尾行号没填写齐全,请重填!"
ElseIf CheckBox1.Value = True Then
   Set rg = Sheets("公假代课记录表").Range("A2:A" & Sheets("统计表").Range("A65536").End(xlUp).Row)
Else
   Set rg = Range(Sheets("公假代课记录表").Cells(TextBox1.Value, 1), Sheets("公假代课记录表").Cells(TextBox2.Value, 1))
End If
    所以rg不固定

点评

你试试 三楼的方法  发表于 2013-10-26 16:33
回复

使用道具 举报

发表于 2013-10-26 16:40 | 显示全部楼层
wjp023 发表于 2013-10-26 16:32
变量已经给予了赋值.现在考虑的是如何找到rg顶端那个单元格?
我是这样赋值的:
    Dim rg As Range

for each rg in range("a5:b10")  这个循环第一次的就是顶点啊
next
回复

使用道具 举报

 楼主| 发表于 2013-10-26 16:44 | 显示全部楼层
我找到方法了,可以用以下形式:rg.cells(1)来表示.

点评

学习了 我试试  发表于 2013-10-26 16:47

评分

参与人数 1 +6 收起 理由
我心飞翔410 + 6 很给力!

查看全部评分

回复

使用道具 举报

发表于 2013-10-26 17:30 | 显示全部楼层
用数组呢
回复

使用道具 举报

发表于 2013-10-26 17:33 | 显示全部楼层    本楼为最佳答案   
本帖最后由 yyyydddd8888 于 2013-10-27 11:56 编辑
wjp023 发表于 2013-10-26 16:32
变量已经给予了赋值.现在考虑的是如何找到rg顶端那个单元格?
我是这样赋值的:
    Dim rg As Range

单元格区域的range("a1")就是表示这个单元格区域的第一行第一列这个单元格,比如后rg.range("b1")表示rg这个区域的第一行第二列的单元格,rg.range("c5")表示rg这个单元格区域的第五行第三列这个单元格。当然rg.range("b1")与rg.cells(1,2)表示相同的单元格,就是rg这个区域的第一行第二列这个单元格。rg.range("c5")等同于rg.cells(5,3),都表示rg这个区域的第五行第三列这个单元格。
所以不管rg是哪一个区域,rg.range("a1") 都表示这个区域的第一个单元格,与你说的rg.cells(1)是相同的作用。
回复

使用道具 举报

发表于 2013-10-26 20:57 | 显示全部楼层
本帖最后由 fffox 于 2013-10-26 20:58 编辑



在单元格区域内指定特定的单元格可以使用Item属性,例如:
(1) Range("A1:B10").Item(5,3)指定单元格C5,这个单元格处于以区域中左上角单元格A1(即区域中第1行第1列的单元格)为起点的第5行第3列。因为Item属性为默认属性,因此也可以简写为:Range("A1:B10")(5,3)。
如果将A1:B10区域命名为”MyRange”,那么Range("MyRange")(5,3)也指定单元格C5。
(2) Range("A1:B10")(12,13)指定单元格M12,即用这种方式引用单元格,该单元格不必一定要包含在区域内。
同时,也不需要索引数值是正值,例如:
① Range("D4:F6")(0,0)代表单元格C3;
② Range("D4:F6")(-1,-2)代表单元格A2。
而Range("D4:F6")(1,1)代表单元格D4。
(3) 也可以在单元格区域中循环,例如:
Range("D4:F6")(2,2)(3,4)代表单元格H7,即该单元格位于作为左上角单元格E5的第3行第4列(因为E5是开始于区域中左上角单元格D4起的第2行第2列)。
(4) 也能使用一个单个的索引数值进行引用。计数方式为从左向右,即在区域中的第一行开始从左向右计数,第一行结束后,然后从第二行开始从左到右接着计数,依次类推。(注:从区域中第一行第一个单元格开始计数,当第一行结束时,转入第二行最左边的单元格,这样按一行一行从左向右依次计数。以单元格区域中第1个单元格开始,按上述规则依次为第2个单元格、第3个单元格….等等),例如:
Range("A1:B2")(1) 代表单元格A1;
Range("A1:B2")(2) 代表单元格B1;
Range("A1:B2")(3) 代表单元格A2;
Range("A1:B2")(4) 代表单元格B2。
这种方法可在工作表中连续向下引用单元格(即不一定是在单元格区域内,但在遵循相同的规律),例如:
Range("A1:B2")(5)代表单元格A3;
Range("A1:B2")(14)代表单元格B7,等等。
也可以使用单个的负数索引值。
这种使用单个索引值的方法对遍历列是有用的,例如,Range("D4")(1)代表单元格D4,Range("D4")(2)代表单元格D5,Range ("D4")(11)代表单元格D14,等等。
同理,稍作调整后也可遍历行,例如:
Range("D4").Columns(2)代表单元格E4,Range("D4").Columns(5)指定单元格H4,等等。
(5)当与对象变量配合使用时,Item属性能提供简洁并有效的代码,例如:
Set rng = Worksheets(1).[a1]
定义了对象变量后,像单元格方法一样,Item属性允许使用两个索引数值引用工作表中的任一单元格,例如,rng(3,4)指定单元格D3。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-13 15:24 , Processed in 0.349794 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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