instr excel宏 使用方法excel

excel中 instr 在宏中使用方法,当前打开sheet1,怎么判断sheet2 a1是否包含”qq“2个字符呢
Sub 判断是否包含()
If InStr(Sheet2.Cells(1, "a"), "qq") Then
MsgBox "qq"
End If
End Sub
上面代码运行提示:运行是错误'424'
要求对象
哪里不对吗

请认真回答,别复制,谢谢

第1个回答  推荐于2016-11-15
1、InStr 函数定义:
返回 Variant (Long),指定一字符串在另一字符串中最先出现的位置。

2、InStr函数用法:
InStr([start, ]string1, string2[, compare])
InStr 函数的语法具有下面的参数:
start 可选参数。为数值表达式,设置每次搜索的起点。如果省略,将从第一个字符的位置开始。如果指定了 compare 参数,则一定要有 start 参数。
string1 必要参数。接受搜索的字符串表达式。
string2 必要参数。被搜索的字符串表达式。
Compare可选参数。指定字符串比较。如果省略 compare,Option Compare 的设置将决定比较的类型。
compare 参数设置为:
常数 值 描述
vbUseCompareOption -1 使用Option Compare 语句设置执行一个比较。
vbBinaryCompare 0 执行一个二进制比较。
vbTextCompare 1 执行一个按照原文的比较。
vbDatabaseCompare 2 仅适用于Microsoft Access,执行一个基于数据库中信息的比较

3、 InStr 函数使用实例:
查找某字符串在另一个字符串中首次出现的位置。
Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP" ' 被搜索的字符串。
SearchChar = "P" ' 要查找字符串 "P"。

' 从第四个字符开始,以文本比较的方式找起。返回值为 6(小写 p)。
' 小写 p 和大写 P 在文本比较下是一样的。
MyPos = Instr(4, SearchString, SearchChar, 1)

' 从第一个字符开使,以二进制比较的方式找起。返回值为 9(大写 P)。
' 小写 p 和大写 P 在二进制比较下是不一样的。
MyPos = Instr(1, SearchString, SearchChar, 0)

' 缺省的比对方式为二进制比较(最后一个参数可省略)。
MyPos = Instr(SearchString, SearchChar) ' 返回 9。

MyPos = Instr(1, SearchString, "W") ' 返回 0。
第2个回答  推荐于2016-07-05
InStr 函数示例
本示例使用 InStr 函数来查找某字符串在另一个字符串中首次出现的位置。
Dim SearchString, SearchChar,
MyPosSearchString ="XXpXXpXXPXXP" ' 被搜索的字符串。
SearchChar = "P" ' 要查找字符串 "P"。' 从第四个字符开始,以文本比较的方式找起。返回值为 6(小写 p)。' 小写 p 和大写 P 在文本比较下是一样的。
MyPos = Instr(4, SearchString, SearchChar, 1) ' 从第一个字符开使,以二进制比较的方式找起。返回值为 9(大写 P)。' 小写 p 和大写 P 在二进制比较下是不一样的。
MyPos = Instr(1, SearchString, SearchChar, 0)' 缺省的比对方式为二进制比较(最后一个参数可省略)。
MyPos = Instr(SearchString, SearchChar) ' 返回 9。MyPos = Instr(1, SearchString, "W") ' 返回 0。

IF MyPos>0 THEN 就是包含!追问

可以按我说的写下代码吗

追答

代码没有问题。

追问

我的是在模版里面,就上面那样,运行就出错,我直接加到sheet1代码里,就正常了,怎么回事呢?我想加到模块里,该怎么修改呢

追答

我放在模板里也没有问题。

本回答被提问者采纳
相似回答