找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 529|回复: 2

[教学] 关于 Excel 中的 Selection Object

[复制链接]

已领礼包: 1268个

财富等级: 财源广进

发表于 2018-3-18 11:10:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
假设

  1. (setq xl (vlax-get-or-create-object "excel.application"))
  2. (setq acSht (vlax-get xl  'activesheet))

1 关于 Selection

在  Excel 中进行了区域 选择就构造了  Selection 对象 ,使用  Ctrl 键 可以构造不连续区域的选择 ,selection 是 多个 Range 对象的集合

2 获取 Selection

a 在 Sheet 中获取
  1. (setq selection (vlax-get acsht 'Selection))

b 直接从  application 中获取 ,此时获取的是  activesheet 中的 selection
  1. (setq seleciton (vlax-get xl 'selection))


3 Selection 的 Areas 属性

获取 Selection 的 Range 需要由 Areas 属性入手
  1. (setq areas (vlax-get selection 'Areas))

Areas 的Count属性指示了当前选择了几个区域 ,注意 Count 是实际区域数量 + 1
  1. (setq count (vlax-get areas 'Count))


4 获取 Selection 中的 每个 Range

Selection 中的 Range 由 Areas 属性的 Item 获取,注意 Excel 中 Item 都是由 1 计,而不是 0,在 Item 中 第一个 索引 是 Selection 构造时 首个 Range 的首单元格,实际 区域 是 由 2 开始
  1. (setq firstRange (vlax-get-property areas 'Item 2))


使用 repeat + count 就可以循环获取各个 Range 了

评分

参与人数 1D豆 +5 收起 理由
sh_h + 5 很给力!经验;技术要点;资料分享奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 769个

财富等级: 财运亨通

发表于 2018-3-19 09:14:32 | 显示全部楼层
感谢大师的分享,受益匪浅!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6056个

财富等级: 富甲天下

发表于 2018-3-21 00:03:49 | 显示全部楼层
谢谢分享。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-3-28 20:44 , Processed in 0.522305 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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