C++ OLE方式读取Excel (Range::Find如何使用)

shixuan2010 2018-07-27 11:26:40
vba中find查找表格中不为空的最大矩形区域,按下面代码:
Sub 查看区域()
Dim a%, b%, m%, n%
a = Cells.Find("*", , , 1, 1, 1).row
b = Cells.Find("*", , , 1, 2, 1).column
m = Cells.Find("*", , , 1, 1, 2).row
n = Cells.Find("*", , , 1, 2, 2).column
Range(Cells(a, b), Cells(m, n)).Select
End Sub

但是COM中Find的声明如下:
LPDISPATCH Find(const VARIANT& What, const VARIANT& After, const VARIANT& LookIn, const VARIANT& LookAt, const VARIANT& SearchOrder, long SearchDirection, const VARIANT& MatchCase, const VARIANT& MatchByte, const VARIANT& SearchFormat);
要实现上面VBA的效果 应该怎样编码?
以下各参数都代表什么意义?应如何传参?

这么问吧:
After 参数作用是啥
LookIn, 这是向哪里查找?
LookAt, 这是向哪里查找?
SearchOrder, 指定什么查找顺序?
long SearchDirection, 指定什么查找方向?
MatchCase, 这是在匹配什么?
MatchByte,这是在匹配什么?全字符匹配吗
SearchFormat 查找的格式应该怎么设定
请高手指点!多谢!!
...全文
449 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgl7903 2019-06-05
  • 打赏
  • 举报
回复
#import 的方式引入 Excel, 剩下的和VBA的宏代码很接近

  • 打赏
  • 举报
回复
打开excle程序,进入VBA编辑界面(录制一个宏,然后编辑宏) 点击帮助,搜索即可。 Range.Find 方法 在区域中查找特定信息。 语法 表达式.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat) 表达式 一个代表 Range 对象的变量。 参数 名称 必选/可选 数据类型 说明 What 必选 Variant 要搜索的数据。可为字符串或任意 Microsoft Excel 数据类型。 After 可选 Variant 表示搜索过程将从其之后开始进行的单元格。此单元格对应于从用户界面搜索时的活动单元格的位置。请注意:After 必须是区域中的单个单元格。要记住搜索是从该单元格之后开始的;直到此方法绕回到此单元格时,才对其进行搜索。如果不指定该参数,搜索将从区域的左上角的单元格之后开始。 LookIn 可选 Variant 信息类型。 LookAt 可选 Variant 可为以下 XlLookAt 常量之一:xlWhole 或 xlPart。 SearchOrder 可选 Variant 可为以下 XlSearchOrder 常量之一:xlByRows 或 xlByColumns。 SearchDirection 可选 XlSearchDirection 搜索的方向。 MatchCase 可选 Variant 如果为 True,则搜索区分大小写。默认值为 False。 MatchByte 可选 Variant 只在已经选择或安装了双字节语言支持时适用。如果为 True,则双字节字符只与双字节字符匹配。如果为 False,则双字节字符可与其对等的单字节字符匹配。 SearchFormat 可选 Variant 搜索的格式。

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧