ExcelVBA文本格式处理编程方法_第1页
ExcelVBA文本格式处理编程方法_第2页
ExcelVBA文本格式处理编程方法_第3页
ExcelVBA文本格式处理编程方法_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、excel 2007 vba文本格式处理编程方法摘 要 利用excel中的vba编程平台,可以编写出各种基于excel的数据处理程序,不仅可以数值计算,还可以进行文本格式处理,本文阐明了一种文本格式处理编程方法,展示了利用excel 2007 vba 编程处理文本格式的基本原理与方法。关键词 vba编程,excel,文本格式处理 一、数据处理如果需要将第三列变成第四列的格式(如表1所示),有括号去掉括号,将括号里的字符变成上脚字符,若无括号,有“折号,将折号后的字符变成上脚,若无括号,无折号,保持原格式不变。数据内容不变。这种情况如果有少数几行可以,手工编辑改变格式就可以,如果数据上万行,手工

2、编辑就不可取了,编程自动改变格式自然成为首选。表1 列举实例井名油组层编号1上标位置标志层编号2e双11(1-2)2111-2e双11-32213e双12(1-2)2121-2e双1303二、基本算法求取上脚起始位置,即有括号为“(”的位置;没有括号,有折号,刚找折号的位置;既无括号,又无折号为零。利用microsoft excel 中的 visual basic 编程,使用 range 对象,核心语句是:range(tt).characters(start:=temp, length:=3).font.superscript = trueit为范围变量,temp为位置变量,关键点是生成位置参

3、数,然后通过循环,生成将目标列的数据格式修改。标识和处理 range 对象最常用的方法,如表2所示。用 a1 样式记号引用单元格和单元格区域,可使用 range 属性来引用 a1 引用样式中的单元格或单元格区域。下述子程序将单元格区域 a1:d5 的字体设置为加粗。sub formatrange() workbooks(book1).sheets(sheet1).range(a1:d5) .font.bold = trueend sub 表2 range引用处理区域的方法引用 含义range(a1) 单元格 a1range(a1:b5)从单元格 a1 到单元格 b5 的区域range(c5:d

4、9,g9:h16)多块选定区域range(a:a)a 列 range(1:1)第一行 range(a:c) 从 a 列到 c 列的区域range(1:5) 从第一行到第五行的区域 range(1:1,3:3,8:8)第 1、3 和 8 行 range(a:a,c:c,f:f)a 、c 和 f 列要引用一个对象,可以使用很多不同的方法。您可以根据程序运行所处的实际环境,以方便和易于理解为原则,确定具体使用何种方法。本文主要采用使用 range 属性的 a1 样式引用法。三、数据处理1启用宏窗口左上角的office按钮excel选项信任中心-信任中心设置-宏设置启用宏2。首先如何进入宏编辑状态,在

5、excel工具菜单中视图单击宏(或)alt+f8查看宏窗口,3创建宏在宏窗口的宏名文本框中输入将创建的宏名,然后点击宏窗口里的“创建”按钮,便进入visual basic编辑窗口,4生成用户窗体接下来在这个窗口中插入用户窗体,再向用户窗体添加按钮,为新添加的按钮增加响应代码。运行程序。 5编写代码6运行程序四、excel对象模型要完成这个编程任务,须得深刻理解excel对象模型,excel的对象模型是通过层次结构很有逻辑地组织在一起的,一个对象可以是其他对象的容器,可以包含其它的对象,而这些对象又包含其它的对象。位于顶层的是application对象,也就是excel应用程序本身,它包含exc

6、el中的其它的对象,如workbook对象;一个workbook对象包含其它一些对象,如worksheet对象;而一个worksheet对象又可以包含其它对象,如range对象等。这就是excel的对象模型。例如:range对象在excel对象模型中的位置为:application对象 workbook对象 worksheet对象 range对象 可以使用“对象浏览器”查看excel对象模型的方法,快速浏览工程中的所有组件及特定过程的详细信息。知道了某对象在对象模型层次结构中的位置,就可以用vba代码方便地引用该对象,从而对该对象进行操作,并以特定的方式组织这些对象,使excel能根据您的需要

7、自动化地完成工作任务。因此,要熟练掌握excel vba编程,必须理解excel的对象模型。 集合是对象,是一组属于同一类型的对象或相关的对象的集,作为它们的容器。例如,workbooks对象是当前打开的所有workbook对象的集合,worksheets是包含在某个workbook对象中的所有worksheet对象的集合。 在excel中,application对象代表excel应用程序本身,其它的对象都从它开始。每个对象都有自已的方法和属性,并且某些对象的一些方法和属性是相同的。 在通常情况下,我们认为先需要选择对象,然后再对所选对象进行处理,宏录制器就是这样的。事实上,在不进行选择的情况

8、下,直接在对象上执行动作将会更有效且运行快速。 在大多数情况下,需要通过引用对象所在的集合间接地引用某个对象。例如,workbooks(“book1.xls”)在工作簿集合中引用名为book1的workbook对象。 属性可以返回对另一个对象的引用,一定要认识到这一点。例如,语句range(“a1”).font.bold=true中,font属性返回range对象中所包含的一个font对象。 五、主要代码处理代码分如下两个部分。1 定位上标字符起始位置,并置标志位,for i = 2 to 1060 temp = sheet1.cells(i, 3) 为便于计算,将目标串赋值到变量temp中

9、t = instr(temp, ()若temp中有”(“,就将”(“出现的位置序号返到t中若有括号,则把”(“序号存到同一行的第四列单元格中,且令同行的第五列单元格值为1作为识别标志,否则,如果有”-“,则记下”-“的位置序号到本行第四列单元格中,置标记单元格值为 2。无括号且无”-“,则记下上脚标记位置为0, if t 0 then sheet1.cells(i, 4) = t sheet1.cells(i, 5) = 1 else if instr(temp, -) 0 then 如果 sheet1.cells(i, 4) = instr(temp, -) sheet1.cells(i,

10、5) = 2 end if if instr(temp, -) 0 and sheet1.cells(i, 5) = 1 then 如果有括号 td = sheet1.cells(i, 4) sheet1.cells(i, 3) = replace(sheet1.cells(i, 3), (, )去掉括号 sheet1.cells(i, 3) = replace(sheet1.cells(i, 3), ), ) range(tt).characters(start:=td, length:=3).font.superscript = true置目标子串为上脚格式 end if if sheet1.cells(i, 4) 0 and sheet1.cells(i, 5) = 2 then如果无括号,只有”-“,则去掉串中的”-“并将目标子串置为上脚

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论