VBA Instr 函数17 Mar 2025 | 6 分钟阅读 我们经常需要在句⼦或整个 Excel 表格中查找单词,以应⽤某种格式或进⾏更改。例如,您只想将“VBA Programming Language”字符串中的单词“VBA”设置为粗体。 定位单词出现的最佳⽅式是使⽤内置的 VBA InStr 函数。 本教程将带您了解使⽤ VBA InStr 函数编写宏代码的定义、语法、参数、返回类型和不同示例。 什么是 Instr 函数?“VBA Instr 字符串函数有助于查找任何特定字符在提供的字符串中的位置。例如,如果想在“Excel”中找到“x”的位置,使⽤ Excel VBA Instr 函数将返回 2。” VBA INSTR 函数是归类为字符串/⽂本函数下的内建函数。此函数在 Microsoft Visual Basic 编辑器中以 VBA 宏进⾏编码。 但是,您也可以在 Excel 表格中将 INSTR ⽤作 Excel 函数。 语法参数开始(可选):此参数代表搜索的起始位置。 如果跳过此参数,则默认起始值为 1。 字符串(必需):此参数代表要在其中搜索的字符串。 ⼦字符串(必需):此参数代表您要查找的⼦字符串。 ⽐较(可选):此参数代表要执⾏的⽐较类型。 它可以是以下值之⼀
注意事项
示例INSTR 示例 1:INSTR 函数查找字符串“VBA World”中“o”的位置。使⽤ INSTR 函数,我们将从头开始查找字符串“VBA World”中“o”的位置。 以下是编写 VBA 宏以查找字符“o”在提供的字符串中位置的步骤 步骤 1:通过单击快捷键 Alt +F11 或单击开发⼯具窗⼝ -> 视觉基本编辑器,转到 VBA 开发⼯具选项卡。 步骤 2:将出现 VB 编辑器。下⼀步是创建⼀个模块。右键单击 VBA 项⽬-> 转到插⼊-> 转到模块。 ![]() 步骤 3:将插⼊ VBA 模块。下⼀步是使⽤字符串“VBA World”声明并初始化变量 MyVal。 代码如下所示 步骤 4:接下来,我们将调⽤ InStr 函数,并将字符串作为第⼀个参数传递,并在第⼆个参数中指定⼦字符串“o”。 稍后,使⽤ MsgBox,我们将显⽰输出。 ![]() 输出 通过按 F5 键运⾏代码并获取结果。您将在 Excel 表格中看到以下消息框,显⽰输出。 ![]() 结果,您将注意到消息框将显⽰输出 5。 程序 2:使⽤ INSTR 查找第⼆个单词的位置假设您想在句⼦“It's better to have butter on the butter table”中查找“butter”的位置。 但是,存在⼀个变化,因为您希望搜索从第⼆个单词开始,⽽不是第⼀个单词。 要解决此问题,您所需要做的就是更改 [开始] 参数,以确保它指定第⼆个单词开始的位置。 以下是编写 VBA 宏以查找字符“o”在提供的字符串中位置的步骤 步骤 1:通过单击快捷键 Alt +F11 或单击开发⼯具窗⼝ -> 视觉基本编辑器,转到 VBA 开发⼯具选项卡。 步骤 2:将出现 VB 编辑器。下⼀步是创建⼀个模块。右键单击 VBA 项⽬-> 转到插⼊-> 转到模块。 ![]() 步骤 3:将插⼊ VBA 模块。下⼀步是声明并初始化变量位置。 在此变量中,我们将存储⼦字符串 butter 的位置。 代码如下所示 步骤 4:接下来,我们将调⽤ InStr 函数,并将 [开始] 参数作为 4 传递,在第⼆个参数中指定字符串,并在第三个参数中指定⼦字符串“butter”。 稍后,使⽤ MsgBox,我们将显⽰输出。 ![]() 输出 通过按 F5 键运⾏代码并获取结果。您将在 Excel 表格中看到以下消息框,显⽰输出。 ![]() 宏将返回消息框,显⽰值为 22,因为我们已将起始位置指定为 4。因此,它将忽略第⼀个出现的“butter”,并在字符串中找到单词“butter”的第⼆个出现。 InStr 示例 3:在 Excel ⼯作表中查找指定电子邮件地址中 @ 的出现。在此宏代码中,我们将对宏进⾏编码,⽽不是编写整个宏,稍后将在我们的 Excel ⼯作表中使用。 以下是实现 VBA 函数以查找字符“@”在提供的字符串中出现的步骤 步骤 1:通过单击快捷键 Alt +F11 或单击开发⼯具窗⼝ -> 视觉基本编辑器,转到 VBA 开发⼯具选项卡。 步骤 2:将出现 VB 编辑器。下⼀步是创建⼀个模块。右键单击 VBA 项⽬-> 转到插⼊-> 转到模块。 ![]() 步骤 3:接下来,我们将创建⼀个⾃定义函数,就像任何其他 Excel ⼯作表函数⼀样。 将函数定义为整数值并声明您的变量。 代码 步骤 4:在 InStr 函数内部,将您的字符串作为 Ref,将⼦字符串作为“@”传递。 将整数 ValPos 传递给 LocatePos 函数。 此函数将获取⼀个单元格引⽤作为输⼊,并向您提供其中 @ 的位置。 代码 ![]() 输出 打开您的 Excel ⼯作表,您将注意到 LocatePos 被创建为⼀个⾃定义函数。 使⽤该函数,传递字符串,它将返回⼦字符串“@”的位置。 请参阅下⾯的输出 ![]() 下⼀个主题VBA Split 函数 |
我们请求您订阅我们的新闻通讯以获取最新更新。