ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1599|回复: 2

请教提取数据---有点复杂

[复制链接]

TA的精华主题

TA的得分主题

发表于 2005-4-11 18:34 | 显示全部楼层 |阅读模式
我有一组数据如下例:

>Houston

AGTTTTATATTTGATTTTTAGTAAGAAAAATAGAAACAGAAAAAAATTAATTAGTTTGGTAAAATGAATTATTTTTATAAATTAATTTATTGCT

>BISQUICK

AGTTTTATATTTGATTTTTAGTAAGAAAAATAGAAACAGAAAAAAATTAATTAGTTTGGTATTTTTATAAATTAATTTATTGCT

>BUSTER

AGTTTTATATTTGATTTTTAGTAAGAAAAATAGAAACAGAAAAAAATTAAATTAGTTTGTATTTTTATAAATTAATTTATTGCT

>JUNIOR

AGTTTTATATTTGATTTTTAGTAAGAAAAATAGAAACAGAAAAAAATTAAATTAGTTTGTTATTTTTATAAATTAATTTATTGCT

…………………

每段数据包括前面带”>”的部分和后面的各种ATCG字母。

我现在想要按照前面带”>”的标识来提取段落数据并把提取到的数据放到一个新的WORD文档中。

例如:我要提取>HOUSTON和>BUSTER这两段数据,我把这两个标识(HOUSTON和BUSTER)放在EXCEL工作表A列的第一和第二行。提取的结果放在一个新WORD文档中。

估计得VBA了,请首柔斑竹帮我。多谢。

TA的精华主题

TA的得分主题

发表于 2005-4-11 19:53 | 显示全部楼层

EAkg6hzP.rar (14.66 KB, 下载次数: 17)

以下代码供参考:

'* +++++++++++++++++++++++++++++ '* Created By I Love You_Word!@ExcelHome 2005-4-11 19:52:12 '仅测试于System: Windows NT Word: 10.0 Language: 2052 '^The Code CopyIn [ThisDocument-ThisDocument]^' '* -----------------------------

Option Explicit '请在运行该过程前确定VBE/工具/引用:引用Microsoft Excel 10.0(版本不同而异) Object Library '请将储存搜索项的EXCEL工作薄置于同本文档同一文件夹下,或者在代码中指定该工作薄路径 Sub ReadByExcelSheetWriteInWordDocument() Dim ExlApp As Excel.Application, Exlsht As Excel.Worksheet, NoFindText As String, MyRange As Range Dim XlsFileName As String, LastAddress As String, XlsRange As Excel.Range, I As Excel.Range Dim MyString As String, MyDoc As Document, FindText As String, TF As Boolean On Error Resume Next '忽略错误 With ThisDocument XlsFileName = .Path & "\LI-1.xls" '取得同一文件夹下的XLS工作薄 '将文档中的部分非段落标记的回车符全部替换为段落标记 .Content.Find.Execute FindText:="^13", replacewith:="^p", Replace:=wdReplaceAll '如果进程中没有EXCEL If Tasks.Exists("Microsoft Excel") = False Then '定义一个新的EXCEL.APPLICATION对象 Set ExlApp = New Excel.Application TF = False '设置TF值 Else '如果已有,则返回该EXCEL对象的引用 Set ExlApp = GetObject(, "Excel.Application") TF = True '设置TF值 End If '定义一个工作表对象 Set Exlsht = ExlApp.Workbooks.Open(XlsFileName).Sheets(1) With Exlsht '对于指定工作表 LastAddress = .[A65536].End(xlUp).Address '取得A列最后一行有数据单元格 Set XlsRange = .Range("A1:" & LastAddress) '定义一个EXCEL区域 End With For Each I In XlsRange '在指定的EXCEL区域中循环 Set MyRange = .Content '定义一个文档区域 With MyRange.Find '在该区域中搜索 .Text = ">" & I '设置搜索内容 .MatchCase = False '不区分大小写 .Wrap = wdFindContinue '继续查找 .Execute '执行指定的查找 If .Found = False Then '如果没有找到 '定义一个STRING变量 NoFindText = ">" & I & Chr(13) & "Word未搜索到此查找项!" FindText = NoFindText '定义一个文本变量 Else '反之则MYRANGE区域会重新自动定义为该段落到下一个段落的结束 Set MyRange = ThisDocument.Range(MyRange.Start, MyRange.Next(wdParagraph, 1).End) FindText = MyRange.Text '定义一个文本变量为 End If '在内存中累加 MyString = MyString & FindText End With Next I Set MyDoc = Documents.Add '定义一个新文档(活动文档) Selection.InsertAfter MyString '插入内存中的文本变量 End With Set Exlsht = Nothing '释放该对象 '如果TF=FALSE则退出EXCEL,并释放该变量对象 If TF = False Then ExlApp.Quit: Set ExlApp = Nothing End Sub '----------------------

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-4-12 17:49 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

多谢

辛苦了

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-15 02:11 , Processed in 0.026806 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表