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