VBA excel数据提取(1)——从某一列中提取所需内容区间,并赋值给另一列
2019-03-07 23:50
4507 查看
笔者最近在做一个数据库项目,其中需要从EXCEL中提取关键字段。提取内容如下图所示,需要将图中加粗部分单独提出后进行去噪处理。如果通过word处理,文字量小的时候尚可实现,但几十万字的处理量很容易就造成假死。因此采用了EXCEL进行数据处理。
代码如下:功能是将B列中的数据筛选后存入C列
Sub 提取内容() Dim searchtext Dim textlong Dim str_start Dim str_end For i = 1 To 2000 searchtext = Worksheets("sheet1").Range("B" & i).Value textlong = Len(Worksheets("sheet1").Range("B" & i).Value) '————————————————————————————确定提取的字符区间 If InStr(searchtext, "解决") <> 0 Then str_start = InStr(searchtext, "解决") str_end = InStr(searchtext, "问题") '————————————————————————————避免B列出现不含有所要提取内容时报错 If str_start - str_end - 2 > 0 Then Worksheets("B60J7摘要").Range("c" & i).Value = Mid(searchtext, str_start + 2, str_start - str_end - 2) End If '————————————————————————————提取B列中的内容至C列 ElseIf InStr(searchtext, "问题") <> 0 Then Worksheets("sheet1").Range("c" & i).Value = Right(searchtext, str_start + 2, str_start - str_end - 2) ElseIf searchtext = "" Then Worksheets("sheet1").Range("c" & i).Value = "" Else Worksheets("sheet1").Range("c" & i).Value = "不含有" End If Next End Sub
注:由于要提取的内容中,必然以“解决”开头,以“问题”结尾,因此可采用上述代码处理。提取结果如图所示。
相关文章推荐
- 用VBA从SQL Server中提取数据到Excel中
- excel vba编程,是在一段表格中插入几行后,插入行后的行整体下移,不破坏原有数据内容,
- excel中判断一个表中的某一列的数据在另一列中是否存在
- excel一列几万行数据进行赋值
- Matlab读取Excel文件数据和提取某一关键字对应的某一列
- excel判断某一列中的数据是否在另一列中(含跨sheet)
- matlab如何实现循环提取EXCEL一列数据
- 学以致用——Excel连接Oracle生成iKB报告——Part1(使用VBA从数据库提取汇总数据)
- 【VBA】VBA编写的,将一列中相同的内容的行提取出来单独生成文件
- VBA实现EXCEL某一列的部分数据和等于指定值
- 如何对EXCEL一列的数据中快速提取不重复的记录
- EXCEL VBA代码,实现点击Sheet1按钮控件保存不连续单元格的数据到Sheet2中,然后清空输入内容
- EXCEL 公式使用小计 生成sql 语句 判断某一数据是否在另一列中出现
- Excel 表格中根据某一列的值从另一个xls文件的对应sheet中查找包含其中一列的内容(有点拗口)
- Excel中判断一个表中的某一列的数据在另一列中是否存在
- VBA_把Excel某一区域的内容读入到数组中/把数组的内容写入到Excel中
- matlab读取excel中数据和文本混合的表项,但又要提取出数据
- 在excel中查找某列内容中是否有重复数据
- 【Excel技巧】 数据阅后即焚-VBA
- 根据excel的文件的路径提取其中表的数据到DataSet中