挚友01 发表于 2023-9-18 18:39:27

如何控制Excel表中的UsedRange的界限???????

(setq rg (vlax-get-propertysh 'usedrange))               ;用指定的字符串创建工作表范围对象

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

(setq vvv (vlax-get-property rg 'Value))                         ;获取范围对象的值
(setq ttt (vlax-safearray->list (vlax-variant-value vvv)))       ;转换为list

ssyfeng 发表于 2023-9-19 08:24:27

本帖最后由 ssyfeng 于 2023-9-19 08:38 编辑

应该不会出现无穷大吧,难道全都使用了。判断是否空值,再删除行列,或者用CountA函数判断

liuhe 发表于 2023-9-19 08:28:15

你需要具备vba的知识,如何获取表格“真实”最大行和最大列

挚友01 发表于 2023-9-24 11:39:04


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

jinan1913 发表于 2023-9-26 14:03:24

请教,为什么(setq UsedRange (vlax-get-property sh "UsedRange") )返回#<VLA-OBJECT Range 0000024d27240238>,我以为应该返回类似”A1,E9“的字符串呢.
页: [1]
查看完整版本: 如何控制Excel表中的UsedRange的界限???????