CB OLE操作excel Find函数_呼唤妖哥

czq981113 2015-11-28 10:31:11
CB操作OLE,想用VBA中的Find函数.返回值是range对象.找到结果的话还好,找不到的时候,说明里只说返回Nothing,这个Nothing不知道是个什么东东?我在CB里如何判断没有找到结果的情况呢?
...全文
158 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
czq981113 2015-12-02
  • 打赏
  • 举报
回复
虽然不大理解这个range.pdispVal具体是什么意思,但是能够解决问题.谢谢妖哥.
ccrun.com 2015-11-29
  • 打赏
  • 举报
回复
当搜索结果为空的时候,这个Variant对象确实很诡异,IsNull/IsEmpty/IsArray 体现不出来实际情况,所以在没有找到更好的办法之前,先用猥琐的办法吧:
	String keyword = "aaa";
	Variant range = sheet.OlePropertyGet("Cells").OleFunction("Find",
		WideString(keyword),
		excelApp.OlePropertyGet("ActiveCell"), // After:=ActiveCell,
		-4163, // LookIn:=xlValues,
		2, // LookAt:=xlPart,
		1, // SearchOrder:=xlByRows,
		1, // SearchDirection:=xlNext,
		false, // MatchCase:=False,
		false, // MatchByte:=False,
		false // SearchFormat:=False
		);

	if (range.pdispVal) // 有效但是感觉不专业
	{
		range.OleFunction("Activate");
	}
	else
		Caption = "Empty";

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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