|
发表于 2015-4-11 01:04
|
显示全部楼层
本楼为最佳答案
- Sub 不包含方式的提取()
- Call 获取数据源("不包含方式的提取", False)
- End Sub
- Sub 包含方式的提取()
- Call 获取数据源("包含方式的提取", True)
- End Sub
- Sub 获取数据源(SheetName As String, include As Boolean)
- Dim raw As Variant
- With Sheets(SheetName)
- raw = .Range("D2:D" & .Cells(Rows.Count, 1).End(xlUp).Row).Value
- .Range("E2").Resize(UBound(raw)).ClearContents
- .Range("E2").Resize(UBound(raw)) = GetFilterString(raw, include, .Range("i1").Value, .Range("i2").Value)
- End With
- End Sub
- Function GetFilterString(RawData As Variant, FilterString As Boolean, BeginStr As String, EndStr As String)
- Dim i As Long
- For i = 1 To UBound(RawData)
- If InStr(RawData(i, 1), BeginStr) > 0 Then
- If FilterString = False Then
- RawData(i, 1) = Split(Split(RawData(i, 1), BeginStr)(1), EndStr)(0)
- Else
- RawData(i, 1) = BeginStr & Split(Split(RawData(i, 1), BeginStr)(1), EndStr)(0) & EndStr
- End If
- Else
- RawData(i, 1) = ""
- End If
- Next
- GetFilterString = RawData
- End Function
复制代码 |
|