从string中提取范围

我有一个报告,导出到多个Excel工作表。 每张纸上的第一行与下面有类似的说明。

将数据粘贴到范围A1:K44中。 数据来自“历史”转储部分查询。

我需要从该string中提取范围。 我试图使用拆分和查找function,但范围的长度变化(即A1:AB53A15:C20等)。

我欢迎任何关于如何提取范围的意见。

只需使用Split()将你的string分割成一个数组,然后抓取第五个元素(index = 4):

 Const SOME_TEXT As String = "Paste Data in range A1:K44 only. Data to come from ""History"" dump in Part Inquire." Dim strRange As String strRange = Split(SOME_TEXT)(4) Debug.Print strRange 

输出:

 A1:K44 

如果出现的文本不太一致,可以使用正则expression式来提取string中出现的第一个范围:

 Const SOME_TEXT As String = "This string has A1:K44 in it but is inconsistent with the rest." Dim re Set re = CreateObject("VBScript.RegExp") re.Pattern = "\b[AZ]{1,3}\d+:[AZ]{1,3}\d+\b" If re.Test(SOME_TEXT) Then Debug.Print re.Execute(SOME_TEXT)(0) End If