求教一个获取EXCEL单元格的问题【已解决】
本帖最后由 zhaoxt 于 2023-1-2 09:59 编辑假设我LISP里已经获取了这活动的sheet,如何用代码得到如图里的(3B3)这个值。查了好久资料找不到办法。望指点 试试这个,获取A1单元格的值:
(vlax-variant-value
(vlax-get-property
(vlax-get-property
(vlax-get-property
(vlax-get-property (vlax-get-object "Excel.Application") 'ActiveWorkbook)
'ActiveSheet
)
'range
"A1"
)
'value2
)
)
ssyfeng 发表于 2023-1-1 18:31
试试这个,获取A1单元格的值:
(vlax-variant-value
(vlax-get-property
感谢!可能是我没表达清楚,我的意思是如何判断已经填写的区域,好在紧接着的未填的单元格开始继续填写。 zhaoxt 发表于 2023-1-1 18:35
感谢!可能是我没表达清楚,我的意思是如何判断已经填写的区域,好在紧接着的未填的单元格开始继续填写。
空值就是没有填写。(setq *xlapp* (vlxls-app-open fileid NIL )
bookname (vlxls-get-property *xlapp* "Application.ActiveWorkbook.Name" )
sheetnamelst (vlxls-sheet-get-all *xlapp*)
sheetname (car sheetnamelst)
rangid (vlxls-range-getID(vlxls-sheet-get-usedrange *xlapp* sheetname))
)
这是我写的,其中userdrange就是使用区域。这个使用可能是空值,但是被设置了线宽也算是使用区域 liuhe 发表于 2023-1-1 19:32
空值就是没有填写。(setq *xlapp* (vlxls-app-open fileid NIL )
bookname (vlxls-get-property *x ...
十分感谢。但我还是没达到目的。你的这个代码确实能得到一个矩形区域。确切的说在我这个表格里可以得到"A1:B3"这个区域。但这只是我看到表格才知道这确切的值。问题是程序得到这个range,如何能从range里提取出行和列的具体数值呢? (setq e(vlax-get-object "excel.application"))
(setq s(vlax-get-property e "activesheet"))
(setq r1(vlax-get-property S "range" "b65536"))
(setq r2(vlax-get-property r1 "end" -4162))
(setq r3(vlax-get-property r2 "offset" 1 0))
(vlax-get-property r3 "address" nil nil nil) 和尚777 发表于 2023-1-2 08:49
(setq e(vlax-get-object "excel.application"))
(setq s(vlax-get-property e "activesheet"))
(setq r1 ...
试了下,你这个可以!非常感谢!学到了
页:
[1]