找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 688|回复: 14

[求助] VLISP读到EXCEL时的一此参数如何设定?????

[复制链接]
发表于 2017-6-25 10:22:08 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 挚友01 于 2017-6-25 10:39 编辑

(setq retV (excel:find "c:\\1.xls" "BOM" "A4:E6"))
(defun excel:find (fn name str / excel wks shts range crange c1 c2 c3 lst)  ; CAD读取EXCEL中的内容
(vl-load-com)
  (if (setq excel (vlax-get-or-create-object "Excel.Application"))
    (progn
      (setq wks         (vlax-get excel 'workbooks)
            wk         (vlax-invoke wks 'open fn)
            shts (vlax-get wk 'sheets)
      )
      (if (not (vl-catch-all-error-p
                 (setq sh (vl-catch-all-apply 'vlax-get-property (list shts 'item name)))
               )
          )
        (progn
          (setq range (vlax-get sh 'usedrange))
          (if (setq crang (vlax-invoke range 'Find str))
            (progn
              (setq c1        (vlax-get-property crang 'offset 0 1)
                    c2        (vlax-get-property crang 'offset 0 2)
                    c3        (vlax-get-property crang 'offset 0 3)
                    lst        (list (vlax-get c1 'Value) (vlax-get c2 'value)(vlax-get c3 'value))
              )
            )
          )
        )
      )
      (vlax-invoke wk 'close)
      (vlax-release-object excel)
    )
  )
  lst

)
1、我想要读A4到A4的最后一行(有数据行未尾)怎么设?"A4:???????"
2、如何选择当前激活的工作表?
2、只读取按条件的几列,如何改上面的程序,如 B,J,Q列

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

开源函数库看源码都是指定区域和选择区域,没有获取有数据的最后一行的函数
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 1 反对 0

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2017-6-25 10:41:05 | 显示全部楼层
看看 开源函数库 中这个函数如何定义的,你这个是一个为特定应用写的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-25 11:01:18 | 显示全部楼层
先说这个如何设定 ????   1、我想要读A4到A4的最后一行(有数据行未尾)怎么设?"A4:???????"
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2017-6-25 11:47:46 | 显示全部楼层

offset 要两个参数,行、列,同行的就是 0,列要先求出 columncount ,然后减去当前列值
(vlax-get-property crange 'offset 0 (- ... ...))

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

使用道具 举报

 楼主| 发表于 2017-6-25 11:53:45 | 显示全部楼层
用什么[a65536].End(xlUp).Row,能不能反映最后一行....
"A4:?????????End(xlUp).Row"
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

发表于 2017-6-25 11:57:49 | 显示全部楼层

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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2017-6-25 12:58:16 | 显示全部楼层
你把EXCEL内容都读出到一个表里面,然后用表处理函数去解决你的需要。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-25 17:33:17 | 显示全部楼层
是要将EXCEL内容都读出到一个表里面,但要有个范围啊,不能到65536行啊,只有到有数据的最后一行就成...怎么做?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-6-25 18:24:12 | 显示全部楼层

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-6-25 22:31:00 | 显示全部楼层

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

使用道具 举报

已领礼包: 859个

财富等级: 财运亨通

发表于 2017-6-25 22:31:53 来自手机 | 显示全部楼层
挚友01 发表于 2017-6-25 22:23

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

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2017-6-26 14:53:39 | 显示全部楼层
[a65536].End(xlUp).Row  和 excel->activesheet->usedrange->rows->count完全是两码事
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-27 22:44:14 | 显示全部楼层
有没有高手帮助着修改一下程序,多谢多谢!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-28 11:56:50 | 显示全部楼层
研究了开源函数,只有'UsedRange和指定区域,不知怎么算出有值的最后一行和最后一列,请高手指点指点,(不会这个功能本身就无法实现吧)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-12 09:46 , Processed in 0.200551 second(s), 58 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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