在VBA中使用搜索功能

时间:2015-10-03 21:34:31

标签: excel vba excel-vba

我花了好几个小时试图想出解决方案,所以我给了我们并寻求帮助!!

我有不同的产品(在单元格A2到A10中),它们是不同的术语。单元格中的描述是“烘焙5年奖”'或者它可以是'Style 3年奖'。

我需要使用搜索功能来确定它是不是3年或5年的产品,然后根据它,我需要它来复制术语“3年”'或者' 5年'到另一个工作簿,即不复制描述中的其他词,例如Bake。

2 个答案:

答案 0 :(得分:0)

我认为这个解决方案可能符合您的期望。

您可以创建将根据您的描述提取数字的函数:

Function ExtractDigits(s As String) As String
Dim retval As String    
Dim i As Integer

retval = ""

For i = 1 To Len(s)
    If Mid(s, i, 1) >= "0" And Mid(s, i, 1) <= "9" Then
        retval = retval + Mid(s, i, 1)
    End If
Next

ExtractDigits = retval
End Function

您可以使用此功能将所需数据放入其他工作表。

If ExtractDigits(Worksheet("Source").Cells(1,2) = 1 Then
   Worksheet("OtherSheet").Cells(1,1) = ExtractDigits(Worksheet("Source").Cells(1,2) + " year"
Else
   Worksheet("OtherSheet").Cells(1,1) = ExtractDigits(Worksheet("Source").Cells(1,2) + " years"
End

答案 1 :(得分:0)

您可以使用基于正则表达式的

Function findYear(str As String) As String
    Set reg = CreateObject("VBScript.RegExp"):reg.Pattern = "\d+ year"
    Set matches = reg.Execute(str): findYear = matches(0).Value
End Function