明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 752|回复: 2

(setq wb (vlax-invoke-method wbs "open" excelFile))实参太少???

[复制链接]
发表于 2022-6-8 21:40 | 显示全部楼层 |阅读模式

(setq wb (vlax-invoke-method wbs "open"  excelFile))实参太少???
有没有哪位大神能帮忙看一下具体是哪里出了问题,代码如下:
;;;读取EXCEL某列数据
;;;
(setq line_read "A")
(defun xls_read        ()
  (vl-load-com)
  (setq excelFile (getfiled "\请选择Excel文件:" "" "xlsx" 8))
  (setq xl (vlax-get-or-create-object "Excel.Application"))
  (setq wbs (vlax-get-property xl "WorkBooks"))
  (setq wb (vlax-invoke-method wbs "open"  excelFile))
  (setq shs (vlax-get-property wb "Sheets"))
  (setq sheet_1 (vlax-get-property shs "Item" "Sheet1"))
  (setq Msg '())
  (setq n 1)
  (while (> n 0)
    (setq RangeStr (strcat line_read (itoa n)))
    (setq Cell_A (vlax-get-property sheet_1 "Range" RangeStr))
    (setq Cell_A_value (vlax-get-property Cell_A 'Value))
    (setq UnitValue (Vlax-variant value Cell_A_value))
    (setq Msg (cons UnitValue Msg))
    (if        (not UnitValue)
      (setq n -1)
      (setq n (+ n 1))
    )
  )
  (setq Msg (reverse (cdr Msg)))
  (princ Msg)
  (vlax-invoke-method wb "Close")
  (vlax-invoke-method xl "Quit")
  (vlax-release-object xl)
)

发表于 2022-6-8 22:29 | 显示全部楼层
本帖最后由 yshf 于 2022-6-8 22:38 编辑

将(setq wb (vlax-invoke-method wbs "open"  excelFile))
改为 (setq wb (vlax-invoke wbs "open"  excelFile))试试
查看Excel VBA帮助
Excel 开发人员参考
Workbooks.Open 方法

打开一个工作簿。语法
表达式.Open(FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad)
表达式   一个代表 Workbooks 对象的变量。
参数
名称必选/可选数据类型描述
CorruptLoad可选VariantString 类型。要打开的工作簿的文件名。
UpdateLinks可选Variant指定更新文件中链接的方式。如果省略此参数,则提示用户指定链接的更新方式。有关此参数值的详细信息,请参阅“备注”部分。如果 Microsoft Excel 正在打开 WKS、WK1 或 WK3 格式的文件并且 UpdateLinks 参数为 2,则 Microsoft Excel 根据与该文件关联的图形生成图表。如果此参数为 0,则不创建任何图表。
ReadOnly可选Variant如果为 True,则以只读模式打开工作簿。
Format可选Variant如果 Microsoft Excel 正在打开文本文件,则由此参数指定分隔符。如果省略此参数,则使用当前的分隔符。有关此参数值的详细信息,请参阅“备注”部分。
Password可选Variant一个字符串,包含打开受保护工作簿所需的密码。如果省略此参数并且工作簿已设置密码,则提示用户输入密码。
WriteResPassword可选Variant一个字符串,包含写入受保护工作簿所需的密码。如果省略此参数并且工作簿已设置密码,则提示用户输入密码。
IgnoreReadOnlyRecommended可选Variant如果为 True,则不让 Microsoft Excel 显示只读的建议消息(如果该工作簿以“建议只读”选项保存)。
Origin可选Variant如果该文件为文本文件,则此参数用于指示该文件来源于何种操作系统(以便正确映射代码页和回车/换行符 (CR/LF))。可为以下 XlPlatform 常量之一:xlMacintoshxlWindowsxlMSDOS。如果省略此参数,则使用当前操作系统。
Delimiter可选Variant如果该文件为文本文件并且 Format 参数为 6,则此参数是一个字符串,指定用作分隔符的字符。例如,可使用 Chr(9) 代表制表符,使用“,”代表逗号,使用“;”代表分号,或者使用自定义字符。只使用字符串的第一个字符。
Editable可选Variant如果文件为 Microsoft Excel 4.0 加载宏,则此参数为 True 时可打开该加载宏以使其在窗口中可见。如果此参数为 False 或被省略,则以隐藏方式打开加载宏,并且无法设为可见。本选项不能应用于由 Microsoft Excel 5.0 或更高版本的 Microsoft Excel 创建的加载宏。如果文件是 Excel 模板,则参数值为 True 时,会打开指定模板进行编辑。参数值为 False 时,可根据指定模板打开新的工作簿。默认值为 False
Notify可选Variant当文件不能以可读写模式打开时,如果此参数为 True,则可将该文件添加到文件通知列表。Microsoft Excel 将以只读模式打开该文件并轮询文件通知列表,并在文件可用时向用户发出通知。如果此参数为 False 或被省略,则不请求任何通知,并且不能打开任何不可用的文件。
Converter可选Variant打开文件时试用的第一个文件转换器的索引。首先试用的是指定的文件转换器;如果该转换器不能识别此文件,则试用所有其他转换器。转换器索引由 FileConverters 属性返回的转换器行号组成。
AddToMru可选Variant如果为 True,则将该工作簿添加到最近使用的文件列表中。默认值为 False
Local可选Variant如果为 True,则以 Microsoft Excel(包括控制面板设置)的语言保存文件。如果为 False(默认值),则以 [url=]Visual Basic for Applications (VBA) (Visual Basic for Applications (VBA):Microsoft Visual Basic 的宏语言版本,用于编写基于 Microsoft Windows 的应用程序,内置于多个 Microsoft 程序中。)[/url] 的语言保存文件,其中 Visual Basic for Applications (VBA) 通常为美国英语版本,除非从中运行 Workbooks.Open 的 VBA 项目是旧的已国际化的 XL5/95 VBA 项目。
CorruptLoad可选Variant可为以下常量之一:xlNormalLoadxlRepairFilexlExtractData。如果未指定任何值,则默认行为通常为普通加载,但如果 Excel 已尝试打开该文件,则可以是安全加载或数据恢复状态。首先尝试普通加载。如果 Excel 在打开文件时停止操作,则尝试安全加载状态。如果 Excel 再次停止操作,则尝试数据恢复状态。

返回值
一个代表打开的工作簿的 Workbook 对象。
说明

默认情况下,以编程方式打开文件时将启用宏。使用 AutomationSecurity 属性可设置以编程方式打开文件时所用的宏安全模式。
您可在 UpdateLinks 参数中指定下面的一个值,以确定文件的分隔字符:
含义
1用户指定链接更新方式
2从不在该工作簿打开时更新链接
3始终在该工作簿打开时更新链接

您可在 Format 参数中指定下面的一个值,以确定文件的分隔字符:
分隔符
1标签
2逗号
3空格
4分号
5
6自定义字符(请参阅 Delimiter 参数)


 楼主| 发表于 2022-6-11 08:41 | 显示全部楼层
yshf 发表于 2022-6-8 22:29
将(setq wb (vlax-invoke-method wbs "open"  excelFile))
改为 (setq wb (vlax-invoke wbs "open"  exce ...

那一行的问题解决了,非常感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-9 18:54 , Processed in 0.127998 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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