明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 769|回复: 4

[提问] 如何控制Excel表中的UsedRange的界限???????

[复制链接]
发表于 2023-9-18 18:39:27 | 显示全部楼层 |阅读模式
(setq rg (vlax-get-property  sh 'usedrange))               ;用指定的字符串创建工作表范围对象

有时都达到无穷大了,除了手工控制EXCEL的数据使用区域,如何去掉多条的“空”行和空列?????????
是真遇到一个用户表,真的使用区域搞的无穷大,程序直接运行进入漫长等待,而且提取和行、列都是无穷大,所以还是要对无用区域进行判断和处理。

(setq vvv (vlax-get-property rg 'Value))                         ;获取范围对象的值
(setq ttt (vlax-safearray->list (vlax-variant-value vvv)))       ;转换为list
发表于 2023-9-19 08:24:27 | 显示全部楼层
本帖最后由 ssyfeng 于 2023-9-19 08:38 编辑

应该不会出现无穷大吧,难道全都使用了。判断是否空值,再删除行列,或者用CountA函数判断
发表于 2023-9-19 08:28:15 | 显示全部楼层
你需要具备vba的知识,如何获取表格“真实”最大行和最大列
 楼主| 发表于 2023-9-24 11:39:04 | 显示全部楼层

三个方式
1.Range("A1").Currentregion
2.usedRange
3.cells(rows.count, "A").end(xlup).row
以上三个方法都 有局限,确实有的用 户表设的用 户使用区域很大,无法控制
更用 VLISP控制,因为在表中数据中间有可能出现多个空行或空列,所以也没想出什么好办法来筛选。。

评分

参与人数 1明经币 +1 收起 理由
jinan1913 + 1 赞一个!

查看全部评分

发表于 2023-9-26 14:03:24 | 显示全部楼层
请教,为什么(setq UsedRange (vlax-get-property sh "UsedRange") )返回#<VLA-OBJECT Range 0000024d27240238>,我以为应该返回类似”A1,E9“的字符串呢.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-17 06:49 , Processed in 0.192685 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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