xiaping 发表于 2007-1-6 13:28:00

[分享]vlisp-excel函数的修改

<p>近日想编一个CAD与EXCEL之间进行数据传递的程序。直接采用了网站上提供的源代码。的确省去了不少的麻烦。但是在使用中也发现了问题,比如(vlxls-range-getid RangeObject)函数,按照作者的示例可以用来返回在EXCEL中所选定单元格范围的ID,但是在实际应用中该函数出现错误无法正常使用。经反复跟踪调试发现实由于作者提供的代码有一定的问题,经改动以后得到了正确的结果。</p><p>更改以后的函数代码如下:调试的环境是winxp-sp2+autocad2006+office2007简体中文版。有兴趣的朋友可以试一下。</p><p>(Defun vlxls-range-getID (range / col row dx dy);;;;返回指定单元格范围的ID<br/>&nbsp; (setq&nbsp;dx&nbsp; (vlxls-get-property range "Rows.Count")<br/>&nbsp;dy&nbsp; (vlxls-get-property range "Columns.Count")<br/>&nbsp;row (vlxls-get-property range "Row")<br/>&nbsp;col (vlxls-get-property range "Column")<br/>;;;以下注释的代码为原作者所提供,调试中无法通过。MergeArea好像仅能用于已经合并后的单个单元格&nbsp;<br/>;;;&nbsp; (setq&nbsp;dx&nbsp; (vlxls-get-property range "MergeArea.Rows.Count")<br/>;;;&nbsp;dy&nbsp; (vlxls-get-property range "MergeArea.Columns.Count")<br/>;;;&nbsp;row (vlxls-get-property range "MergeArea.Row")<br/>;;;&nbsp;col (vlxls-get-property range "MergeArea.Column")&nbsp;<br/>&nbsp; )<br/>&nbsp; (strcat (vlxls-rangeid (list col row))<br/>&nbsp;&nbsp; ":"<br/>&nbsp;&nbsp; (vlxls-rangeid (list (1- (+ col dy)) (1- (+ row dx))))<br/>&nbsp; )<br/>)</p>

tchen 发表于 2007-1-20 16:15:00

哦 谁能把整个LISP操作EXCEL的代码带解释贴出来!

tianda44308 发表于 2008-1-18 11:48:00

谁能把整个LISP操作EXCEL的代码带解释贴出来

xcajcj 发表于 2008-1-19 09:59:00

<p>大家可以在网上搜索下,内容太多贴不上来:</p><p><a href="http://atablex.com/htmls/vlxls-functions.htm">http://atablex.com/htmls/vlxls-functions.htm</a></p><p>&nbsp;</p>

xcajcj 发表于 2008-1-19 10:03:00

<p>大家还可以去<strong><u>KozMos</u></strong>公司的网站上直接下载。</p><p><a href="http://www.versiontracker.com/dyn/moreinfo/win/63304&amp;mode=feedback">http://www.versiontracker.com/dyn/moreinfo/win/63304&amp;mode=feedback</a></p><p>下面是在上面的网址里下载的源代码及示例文件包。</p>

jfxia 发表于 2019-9-10 22:14:46

好的,帮了我的大忙.thanks
页: [1]
查看完整版本: [分享]vlisp-excel函数的修改