Excel精英培训网

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

求解釋VBA 語句涵義,謝謝

[复制链接]
发表于 2017-4-19 21:00 | 显示全部楼层 |阅读模式
myarr=Range("a3", Range("a2").End(xlDown).End(xlToRight))

myarr=Range("a3", Range("a3").End(xlDown).End(xlToRight))

myarr=Range("a2", Range("a2").End(xlDown).End(xlToRight))

myarr=Range("a2", Range("a3").End(xlDown).End(xlToRight))


請問高手大大,可否解釋一下以上之不同?
謝謝

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2017-4-19 21:52 | 显示全部楼层
本帖最后由 大灰狼1976 于 2017-4-19 22:07 编辑

将Range("a3", Range("a2").End(xlDown).End(xlToRight))拆解:
1、运行Range("a2").End(xlDown).Select可知为[A2]往下A列最下面非空单元格,注意是连续区域,下同
2、运行[A列最下面非空单元格].End(xlToRight).select得到A列最下面非空单元格所在行的最右边非空单元格;
3、代入Range("a3", Range("a2").End(xlDown).End(xlToRight))得到:
   Range("a3", A列最下面非空单元格所在行的最右边非空单元格)
4、可知数组赋值为A3单元格到A列最下面非空单元格所在行的最右边非空单元格区域。
后面自己同样拆解分析一下,不要被复杂的表达式搞昏头。
回复

使用道具 举报

发表于 2017-4-19 21:56 | 显示全部楼层
1.range("a2","b100")代表单元格区域只是“a2:b100”
2.Range("a3").End(xlDown)或者Range("a3").End(xlToRight),是单元格a3向下(或右)到非空单元格,end里有4种方向,上,下,左,右(其实end相当于按下ctrl,后面4个方向就是键盘里的上下左右方向键)
3.myarr=range("a2","b100"),单元格区域“a2:b100”的值赋值给myarr
4.几个区别就是数据取范围时的差别,自己体会下
回复

使用道具 举报

 楼主| 发表于 2017-4-19 22:53 | 显示全部楼层
感謝樓上兩位高手解釋,一句"自己體會"真的一針見血
我還真的要好好體會一下,不過說真的,還真的有點深奧
如果有圖解,可能比文字來的容易懂
總之,謝謝兩位
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-24 01:18 , Processed in 0.251874 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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