首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从VBA中的函数返回RegEx MatchCollection -错误450

错误450是VBA中的一个错误代码,表示“参数不是可选参数”。在这个问题中,它意味着函数返回的数据类型与期望的不匹配。

要从VBA中的函数返回RegEx MatchCollection,您可以使用Microsoft VBScript Regular Expressions库中的RegEx对象。这个库提供了用于在文本中执行正则表达式匹配的功能。

以下是一个示例函数,它接受一个字符串作为输入,并返回一个RegEx MatchCollection:

代码语言:txt
复制
Function GetMatches(inputString As String, pattern As String) As Object
    Dim regex As Object
    Dim matches As Object
    
    Set regex = CreateObject("VBScript.RegExp")
    regex.Global = True
    regex.Pattern = pattern
    
    Set matches = regex.Execute(inputString)
    
    Set GetMatches = matches
End Function

在这个函数中,我们首先创建了一个RegEx对象,并设置了它的Global属性为True,以便在整个输入字符串中执行全局匹配。然后,我们设置了正则表达式的模式。接下来,我们使用Execute方法执行匹配,并将结果存储在一个变量中。最后,我们将这个变量作为函数的返回值。

要使用这个函数,您可以调用它并传递输入字符串和正则表达式模式作为参数。例如:

代码语言:txt
复制
Sub Test()
    Dim inputString As String
    Dim pattern As String
    Dim matches As Object
    Dim match As Object
    
    inputString = "Hello, World! This is a test."
    pattern = "\b\w+\b" ' 匹配单词
    
    Set matches = GetMatches(inputString, pattern)
    
    For Each match In matches
        Debug.Print match.Value
    Next match
End Sub

在这个示例中,我们使用GetMatches函数来查找输入字符串中的所有单词。然后,我们使用For Each循环遍历匹配集合,并打印每个匹配项的值。

请注意,这只是一个简单的示例,用于说明如何从VBA中的函数返回RegEx MatchCollection。实际应用中,您可能需要根据具体的需求进行适当的修改和扩展。

推荐的腾讯云相关产品:腾讯云函数(SCF),腾讯云云开发(CloudBase),腾讯云容器服务(TKE)。

腾讯云函数(SCF)是一种事件驱动的无服务器计算服务,可以让您无需管理服务器即可运行代码。您可以使用SCF来执行各种任务,包括处理HTTP请求、处理数据、执行定时任务等。了解更多信息,请访问:腾讯云函数(SCF)产品介绍

腾讯云云开发(CloudBase)是一种全托管的云原生应用开发平台,提供了丰富的开发工具和服务,包括云函数、云数据库、云存储等。您可以使用CloudBase来快速构建和部署云原生应用。了解更多信息,请访问:腾讯云云开发(CloudBase)产品介绍

腾讯云容器服务(TKE)是一种全托管的容器服务,可以帮助您轻松地部署、管理和扩展容器化应用。您可以使用TKE来运行和管理容器,以及使用Kubernetes进行容器编排。了解更多信息,请访问:腾讯云容器服务(TKE)产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

VBA:正则表达式(1) - 基础篇

正则表达式,常被用来检验、替换符合某个模式(规则)字符串,在代码中常缩写为regexp。VBA并没有直接提供正则表达式对象,需要借助VBScript正则对象。...如果未找到匹配,Execute将返回Matches集合。...(2)匹配到所有对象放在MatchCollection集合,这个集合对象只有两个只读属性: Count:匹配到对象数目; Item:集合又一通用方法,需要传入Index值获取指定元素。...一般,可以使用ForEach语句枚举集合对象。集合对象类型是Match。 (3)Match对象有以下几个只读属性: FirstIndex – 匹配字符串在整个字符串位置,值0开始。...regex functions(https://juejin.cn/s/excel%20vba%20regex%20functions) [6] 简明Excel VBA(四)正则表达式(Regular

2.9K20
  • 如何在 Go 优雅处理和返回错误(1)——函数内部错误处理

    在使用 Go 开发后台服务,对于错误处理,一直以来都有多种不同方案,本文探讨并提出一种服务内到服务外错误传递、返回和回溯完整方案,还请读者们一起讨论。...---- 问题提出 在后台开发,针对错误处理,有三个维度问题需要解决: 函数内部错误处理: 这指的是一个函数在执行过程遇到各种错误错误处理。...这是一个语言级问题 函数/模块错误信息返回: 一个函数在操作错误之后,要怎么将这个错误信息优雅地返回,方便调用方(也要优雅地)处理。...首先本文就是第一篇:函数内部错误处理 ---- 高级语言错误处理机制   一个面向过程函数,在不同处理过程需要 handle 不同错误信息;一个面向对象函数,针对一个操作所返回不同类型错误...---   下一篇文章是《如何在 Go 优雅处理和返回错误(2)——函数/模块错误信息返回》,笔者详细整理了 Go 1.13 之后 error wrapping 功能,敬请期待~~ --- 本文章采用

    9.1K151

    字符串处理总结(旧)

    在基本字符串应用之外,还有一些复杂性相对较高字符串应用。其中很多类型出现概率较高。本人经验出发,常常遇到这样一些典型应用: 1、在较复杂文本查找符合某种规律部分。...比如,要完成HTML代码匹配,可以通过下面的正则表达式来实现: MatchCollection mas = Regex.Matches(s, "href='(?.*?)'...因此,对于CharTransfer函数,就需要加上一个自定义转义。...本人在应用,往往喜欢使用后者,因为后者是可以包含前者,这种思路在JQuery也得到了体现,默认情况下,返回结果都是集合。 三、多个目标的匹配 前述匹配,每次匹配,目标往往只有一个。...对于需要特定处理,可以对返回串进行进一步修改加工。

    1K80

    加强版正则表达式,邮箱,手机号防呆好用得不得了

    被匹配字符串结束位置向前进行查找匹配,同时,在表达式也是右侧表达式先进行匹配。 Extended * 忽略表达式空白字符,并且把 # 开始到该行行末内容视为注释。...默认情况下,正则表达式空格,换行等字符将可以匹配相应字符。...方法 描述 Execute 该方法用来查找字符串,找到字符串将通过MatchCollection集合返回。 Replace 这个方法用于替换在正则表达式搜索中找到文本。...Test Test方法对字符串执行正则表达式搜索,并返回一个布尔值说明匹配是否成功。 Split * 按照指定表达式字符串对目标字符串进行分割并返回一维数组。...二、NewXing.MatchCollection 对象 MatchCollection 是集合对象,包含有关匹配字符串信息,该对象包含每个成功匹配 Match 对象。

    96720

    .NET正则表达式

    第二个方法返回 MatchCollection 对象,该对象对于在分析文本中找到每个匹配项包含一个 System.Text.RegularExpressions.Match 对象。...有关使用 Replace 方法更改日期格式和移除字符串无效字符示例,请参阅如何:字符串剥离无效字符以及示例:更改日期格式。...对 Regex.Replace 方法调用会将匹配字符串替换为 String.Empty;换句话说,将其原始字符串移除。 示例 2:识别重复单词 意外地重复单词是编写者常犯错误。...(单独 $ 符号将指示正则表达式引擎应尝试在字符串末尾开始匹配。)为了确保当前区域性设置货币符号不被错误解释为正则表达式符号,该示例调用 Regex.Escape 方法使该字符转义。...如果找到匹配项,则有关匹配字符串此部分信息可以第二个 Group 对象检索(该对象位于 GroupCollection 属性所返回 Match.Groups 对象)。

    2.1K20

    【4】通过简化正则表达式处理字符串

    常见字符串操作 在基本字符串应用之外,还有一些复杂性相对较高字符串应用。其中很多类型出现概率较高。本人经验出发,常常遇到这样一些典型应用: 1、在较复杂文本查找符合某种规律部分。...,技术角度来说,都不是很难问题。...比如,要完成HTML代码匹配,可以通过下面的正则表达式来实现: MatchCollection mas = Regex.Matches(s, "href='(?.*?)'...本人在应用,往往喜欢使用后者,因为后者是可以包含前者,这种思路在JQuery也得到了体现,默认情况下,返回结果都是集合。 多个目标的匹配 前述匹配,每次匹配,目标往往只有一个。...)”来表示命名分组任意串 规则4:通过CommonCode.RegexUtil.GetPattern(s),可以返回通用模式串 规则5:GetPattern两个重构函数,参数中都可以使用(*)和

    1.4K60

    解读C#正则表达式

    NETregexp类是Perl 5表达式一个超集,因此,理论上说它将作为一个很好起点。我们还假设你具有了C#语法和.NET架构基本知识。   ...Regex还包含一些静态方法:   Escape: 对字符串regex转义符进行转义;   IsMatch: 如果表达式在字符串匹配,该方法返回一个布尔值;   Match: 返回Match...实例;   Matches: 返回一系列Match方法;   Replace: 用替换字符串替换匹配表达式;   Split: 返回一系列由表达式决定字符串;   Unescape:不对字符串转义字符转义...\s*$", "$1"); 这个语句返回字符串abra,其前导和后缀空格都去掉了。   上面的模式对于删除任意字符串前导和后续空格都非常有用。...如果你希望整个过程在匹配abra后结束,就应该表达式删除+符号,让regex引擎知道我们只需要对表达式进行匹配。

    1.3K70

    C#正则匹配和文本处理

    程序做第一件事就是创建一个新Regex 对象并且把要匹配正则表达式传递给构造函数. str1字符串初始化之后, 程序声明了一个Match 对象matchSet....Match类提供与正则表达式进行匹配方法。 if 语句使用了一种Match 类属性Success 来确定是否是成功匹配. 如果值返回为True,那么正则表达式在字符串至少匹配了一条子串....如果与正则表达式产生了匹配, 那么这种方法就返回True, 否则返回False....为了处理所有找到匹配可以把匹配存储到MatchCollection对象....10、正则表达式选项 在指定正则表达式时候可以设置几个选项. 这些选项范围指定多行模式以便正则表达式可以在多行上正确工作, 到编译正则表达式以便能更快速执行.

    2.5K41

    今天同事问我,如何将一串字符串数字取出来,此时不用正则表达式,更待何时。。。(Unity3D)

    下表列出了 Regex 类中一些常用方法: 序号 方法 描述 1 public bool IsMatch( string input ) 指示 Regex 构造函数中指定正则表达式是否在指定输入字符串中找到匹配项...2 public bool IsMatch( string input, int startat ) 指示 Regex 构造函数中指定正则表达式是否在指定输入字符串中找到匹配项,字符串中指定开始位置开始...4 public MatchCollection Matches( string input ) 在指定输入字符串搜索正则表达式所有匹配项。...6 public string[] Split( string input ) 把输入字符串分割为子字符串数组,根据在 Regex 构造函数中指定正则表达式模式定义位置进行分割。...reg = new Regex("\\s+"); Debug.Log(reg.Replace(str, " ")); } } 实例3、 找到字符串数字并返回 using

    1K10

    正则表达式简介与常用表示

    ","正则表达式");   Matches[在字符串寻找要查找内容]时候,直接写表达式,不需要^$ 4)        字符串替换:Regex.Replace("字符串","匹配正则","替换正则...四位数字-两位数字-两位数字   要求:年份必须是19**或者20**,月份必须在01--12,日必须在01-31 下面的写法是错误,因为|优先级最低,如果你将并列选项用括号括起来,判断完数字后,...wc.Encoding = Encoding.UTF8; //网站下载字符串 string content=wc.DownloadString(path); //要会写正则 MatchCollection...,分析出图片存储形式 MatchCollection mc = Regex.Matches(str, @"src=""(hotgirls/(\d{2}_\d{2}\.jpg))"""); foreach...(address); //通过观察,分析出图片存储形式 //要非某一项的话(]+>[^),^一定要用[]括起来 MatchCollection mc = Regex.Matches

    80720

    Excel催化剂开源第24波-较VBA更强大.Net环境正则表达式

    VBA上可以调用正则表达式库,从而编写正则表达式自定义函数,这个相信不少VBA开发者已经熟知,但VBAVBScript正则表达式库毕竟是一个过时产品,不像.Net那样是与时俱进,所以两者实现出来正则功能还是有区别的...在Excel催化剂自定义函数开源,已经对代码作了全公开,此处,只是作一些代码小小讲解,希望对VBA开发者过渡过来VSTO开发有些帮助。...配置类,可丰富地控制正则配置模式 丰富配置模式 在配置模式,用|代表多个选项同时成立。...,因为在.net里有更强大方式,可以精确控制选项作用范围(无需整个匹配都对区分大小写来生效,可精确控制到哪些字符前后才控制区分大小写等) Excel催化剂自定义函数只对不能使用内联构造选项进行参数配置...Excel催化剂自定义函数只对不能使用内联构造选项进行参数配置 下面的示例使用 i、n 以及 x 选项启用区分大小写和显式捕获,并忽略正则表达式中间正则表达式模式空白。

    66320

    ASP.NET验证控件学习总结与正则表达式学习入门

    --[endif]--> 验证控件基本成员: ControlToValidate – 要进行验证控件ID ErrorMessage – 验证失败时,出现错误信息 IsValid – 返回布尔值判断控件是否有效...Validate – 验证控件方法,同时改变IsValid属性 Display– 错误信息显示方式 None (控件错误信息在页面占有肯定位置) Static (控件错误信息出现时才占用页面控件...ClientValidationFunction指定一个包含在html客户端验证函数。OnServerValidate是服务器端验证函数。...当使用Matches()方法时,需要遍历源字符串每一个位置进行尝试匹配,匹配结束返回一个MatchCollection类型对象。...2.3      替换 替换主要是源字符串,将符合某一规律或规则子串替换为其它内容。一般来说,在字符串处理,替换应用也比较广泛。

    2.6K30

    C# 正则表达式

    [^aei] "avail" "v" 和 "l" [ first - last ] 字符范围:与 first 到 last 范围任何单个字符匹配。...下表列出了 Regex 类中一些常用方法: 序号 方法 & 描述 1 public bool IsMatch( string input ) 指示 Regex 构造函数中指定正则表达式是否在指定输入字符串中找到匹配项...2 public bool IsMatch( string input, int startat ) 指示 Regex 构造函数中指定正则表达式是否在指定输入字符串中找到匹配项,字符串中指定开始位置开始...4 public MatchCollection Matches( string input ) 在指定输入字符串搜索正则表达式所有匹配项。...6 public string[] Split( string input ) 把输入字符串分割为子字符串数组,根据在 Regex 构造函数中指定正则表达式模式定义位置进行分割。

    1.7K50

    SQL Server 2005 正则表达式使模式匹配和数据提取变得更容易

    RegexMatch 函数可以轻松处理这些动词,因为它们恰好是列表其他备选方案。 验证是正则表达式常见用法,可以验证电话号码到邮政编码以及自定义帐号数字格式任何内容。...Regex 类包含 Match 方法,该方法返回您可使用 MatchCollectionMatchCollection 问题在于,必须在 Match 方法返回前处理整个字符串。...此函数还可用于未以逗号分隔列表。也可处理以空格、分号、制表符、回车或任何其他可识别字符分隔列表。 ? 在匹配项中进行数据提取 类似于返回匹配项,我们还可以每个匹配项中提取数据。...在图 5 ,RegexGroups 函数定义与 RegexMatches 函数定义一样,除了它还返回匹配项包含组名称其他数据列。...为了方便起见,我提供示例缺乏验证和错误处理,这些是任何生产系统中都应包括。应验证函数每个输入并且应由您要求来确定如何响应 null 或空字符串输入。

    6.4K60

    正则表达式来了,Excel正则表达式匹配示例

    用于匹配字符串Excel VBA正则表达式函数 要在Excel中使用正则表达式,需要创建自己函数。...关于RegExpMatch,你应该知道三件事 在进行实际计算之前,注意以下几点: 1.该函数可以处理单个单元格或单元格区域。在后一种情况下,结果以动态数组或溢出区域形式返回到相邻单元格。...3.如果没有找到有效模式,则函数返回FALSE;如果模式是无效,则发生错误#VALUE!。 下面,介绍几个为演示目的而创建正则表达式匹配示例。...若要在正则表达式匹配时返回或计算某些内容,若不匹配则返回或计算其他内容,将自定义正则表达式匹配函数嵌入if逻辑文本: IF(RegExpMatch(…), [value_if_true],[value_if_false...,而无需将任何VBA代码添加到他们工作簿,因为在外接程序安装过程,这些函数可以顺利集成到Excel

    21.2K30
    领券