Excel2007 VBA文本格式处理编程一例

时间:2022-03-30 06:15:26

Excel2007 VBA文本格式处理编程一例

摘要:利用Excel中的VBA编程平台,可以编写出各种基于Excel的数据处理程序,不仅可以数值计算,还可以进行文本格式处理,本文阐明了一种文本格式处理编程方法,展示了利用Excel2007 VBA 编程处理文本格式的基本原理与方法。

关键词:VBA编程; Excel文本格式处理

中图分类号:TP317文献标识码:A文章编号:1009-3044(2008)14-20948-02

1 数据处理任务陈述

将第三列变成第四列的格式,若有括号去掉括号,将括号里的字符变成上脚字符,若无括号,有“折号,将折号后的字符变成上脚,若无括号,无折号,保持原格式不变。数据内容不变。当然如果有少数几行可以,手工编辑改变格式就可以,如果数据上万行,手工编辑就不可取了,编程自动改变格式自然成为首选。

2 基本算法思想

求取上脚起始位置,有即有括号为“(”的位置;没有括号,有折号,为折号的位置;既无括号,又无折号为零。

利用Microsoft Excel中的 Visual Basic编程,使用Range对象,核心语句是Range(tt).Characters(Start:=temp,Length:=3).Font.Superscript = True

Tt为范围变量,temp为位置变量,关键点是生成位置参数,然后通过循环,生成将目标列的数据格式修改。

标识和处理 Range 对象最常用的方法。用 A1 样式记号引用单元格和单元格区域,

可使用Range属性来引用A1引用样式中的单元格或单元格区域。下述子程序将单元格区域A1:D5的字体设置为加粗。

要引用一个对象,可以使用很多不同的方法。您可以根据程序运行所处的实际环境,以方便和易于理解为原则,确定具体使用何种方法。本文主要采用使用 Range 属性的 A1 样式引用法。

3 数据处理过程

(1)启用宏。窗口左上角的Office按钮Excel选项信任中心信任中心设置宏设置启用宏。

(2)首先如何进入宏编辑状态。在Excel工具菜单中,视图单击宏(或)ALT+F8查看宏窗口。

(3)创建宏。在宏窗口的宏名文本框中输入将创建的宏名,然后点击宏窗口里的“创建”按钮,便进入Visual Basic编辑窗口。

(4)生成用户窗体。接下来在这个窗口中插入用户窗体,再向用户窗体添加按钮,为新添加的按钮增加响应代码。运行程序。

(5)编写代码。

(6)运行程序。

4 理解Excel对象模型

要完成这个编程任务,须得深刻理解Excel对象模型,Excel的对象模型是通过层次结构很有逻辑地组织在一起的,一个对象可以是其它对象的容器,可以包含其它的对象,而这些对象又包含其它的对象。位于顶层的是Application对象,也就是Excel应用程序本身,它包含Excel中的其它的对象,如Workbook对象;一个Workbook对象包含其它一些对象,如Worksheet对象;而一个Worksheet对象又可以包含其它对象,如Range对象,等等。这就是Excel的对象模型。

例如,Range对象在Excel对象模型中的位置为:Application对象;Workbook对象;Worksheet对象;Range对象。

可以使用“对象浏览器”查看Excel对象模型的方法,快速浏览工程中的所有组件及特定过程的详细信息。

知道了某对象在对象模型层次结构中的位置,就可以用VBA代码方便地引用该对象,从而对该对象进行操作,并以特定的方式组织这些对象,使Excel能根据您的需要自动化地完成工作任务。因此,要熟练掌握Excel VBA编程,必须理解Excel的对象模型。

集合是对象,是一组属于同一类型的对象或相关的对象的集,作为它们的容器。例如,Workbooks对象是当前打开的所有Workbook对象的集合,Worksheets是包含在某个Workbook对象中的所有Worksheet对象的集合。

在Excel中,Application对象代表Excel应用程序本身,其它的对象都从它开始。每个对象都有自已的方法和属性,并且某些对象的一些方法和属性是相同的。

在通常情况下,我们认为先需要选择对象,然后再对所选对象进行处理,宏录制器就是这样的。事实上,在不进行选择的情况下,直接在对象上执行动作将会更有效且运行快速。

在大多数情况下,需要通过引用对象所在的集合间接地引用某个对象。例如,Workbooks("Book1.xls")在工作簿集合中引用名为Book1的Workbook对象。

属性可以返回对另一个对象的引用,一定要认识到这一点。例如,语句Range("A1").Font.Bold=True中,Font属性返回Range对象中所包含的一个Font对象。

5 主要代码及简析

处理代码分如下两个部分,计算过程变量值如下表所示。

若有括号,则把“(”序号存到同一行的第四列单元格中,且令同行的第五列单元格值为1作为识别标志,否则,如果有“-”,则记下“-”的位置序号到本行第四列单元格中,置标记单元格值为2。

无括号且无“-”,则记下上脚标记位置为0。

5.2 根据既得的上标起始位置,实现目标格式

For i = 2 To 1060

tt = "C" & Trim(Str(i)) '生成形如C1的单元格范围值赋到变量tt中

If Sheet1.Cells(i, 4) > 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' 如果无括号,只有“-”,则去掉串中的“-”并将目标子串置为上脚格式

td = Sheet1.Cells(i, 4)

Sheet1.Cells(i, 3) = Replace(Sheet1.Cells(i, 3), "-", "")

Range(tt).Characters(Start:=td, Length:=1).Font.Superscript = True

End If

Next i

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文

上一篇:嵌入式移动数据库及其应用问题研究 下一篇:VB访问数据库之探析