在Excel VBA中运用文本类函数InStr,查找特定文本的位置。
1. 打开Visual Basic,添加模块和过程,称之为“文本查询”。
Sub 文本查询()
End Sub
2. 在A2单元格有一个电邮地址,要查找其中“@”是在地址的第几位,并且将返回的结果写入A1单元格中。
3. 在VBA中可以用工作表函数Find来完成以上查询。
Sub 文本查询()
Range("A1") = Application.WorksheetFunction.Find("@", Range("A2"))
End Sub
4. 执行以上代码后,在A1单元格返回“@”在电邮地址中是第10位。
5. 如遇到文本不存在于查询的文本范围中,Find函数则会报错。
6. 避免出现上面问题的方法是运用VBA函数中的InStr函数,首先用该函数查询可以得到正确的结果。
Sub 文本查询()
Range("A1") = VBA.Strings.InStr(Range("A2"), "@")
End Sub
7. 运用InStr查询不存在的文本时,返回的是0,即表示文本中没有该字符。