VB 版 (精华区)
发信人: zxfsnow (江南的雪), 信区: VB
标 题: Excel中的VB编程(转自未名)
发信站: 哈工大紫丁香 (2000年06月18日12:24:56 星期天), 转信
发信人: woodhead (木头脑袋), 信区: VisualBasic
标 题: [转载] 浅谈Excel 的VB编程
发信站: 北大 (Fri May 12 09:46:16 2000), 站内信件
【 以下文字转载自 PC_World 讨论区 】
【 原文由 aeroboy 所发表 】
---- Excel是一个优秀的电子表格软件,如果你编的程序需要以报表的形式显示最
终结
果,它会是个不错的选择。你可以通过VB控制Excel显示数据表格。如果你不愿意
深入了
解Excel这些琐碎的细节,也不是没有权宜之计:你可以打开Excel中的工具→宏→
录制
新宏,然后进行手工操作,结束后把所录的宏代码贴进你的VB程序就行。这样得到
的程
序一般都能正常运行,但其中的宏代码往往不够简洁,效率和可读性都不高。
---- Excel编程碰到的第一个问题是表头。有时表头的形式比较复杂,需要横向或
纵向
合并单元格。请放心,只要没有斜杠,Excel都能应付得了。
---- 例如合并A2~A5这4个单元格,你录制的宏代码会是这样:
Range("A2:A5").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
.MergeCells = False
.MergeCells = False
End With
Selection.Merge
---- 而自己编程只要一句 Range.(“A2:A5”).mergecells=True 就可以解决问题
。
---- 表头形式定了,再就是表头的内容。如果单元格中的文本长度超过了列宽,
往往只
能显示部分内容,行尾那一格的内容则会“越境”进入右边那个空白单元格,很不
美观
。这个问题可以通过在程序中设置列宽加以解决。
---- Columns(14).columnwidth=12 ‘设置第14列列宽为12(缺省列宽为8.38)
---- 如果你不愿意劳神去逐列估计实际所需的列宽,干脆来一行
---- Columns(“a:i”).autofit ‘a到i列自动调整列宽
---- 让Excel随机应变吧。
---- 但也许你不喜欢这种方法,认为表头撑大了列宽,弄得浏览一张小表格还得
向右滚
动,太不方便了。要是能保持默认列宽,让文本自动换行就好了。没问题,Excel
包你满
意。
---- Rows(3).WrapText=True ‘让第三行各单元格中的文本自动换行
---- 不过你最好再加一句 Rows(3) .VerticalAlignment = xlTop 让表头自动向
上对齐
,这样比较符合习惯。
---- 你还可以给表头打上底色,让你的读者不至于看了打哈欠。
---- Rows(2). Interior .ColorIndex = 5 '设置第2行底色为蓝色
---- 再给表格的标题上色,这样更醒目一点。
---- Rows(1).Font.ColorIndex=4
---- 表头完成后该填数据了,一个一个地填实在是太慢了,如果你的数据是存放
在一个
二维数组中,那问题就简单多了。
二维数组中,那问题就简单多了。
Dim Data(3,4)
………… ‘数据处理
Range(“a2:d4”).Value=Data
---- 这样可以一次填入一个表的所有数据,够快了吧!不过提醒一句,Range对象
大小
最好与数组匹配,小了无法显示所有数据,大了则会在空白单元格只填入“N/A”
表示没
有取得数据。
---- 如果需要在结果中显示多个同样规格的数据表,想在Range对象中加入循环变
量,
这也好办。
Dim cell11,cell2
Dim Data(3,4)
…………
For I =1 to 40
………… ‘数据处理
Set cell1=Worksheets("Sheet1").Cells(5*I-4,1)
Set cell2=Worksheets("Sheet1").Cells(5*I-2,4)
Worksheets("Sheet1").Range(cell1,cell2).value=Data
Next I
---- 表格填完了,现在该打表格线了,以下几条语句可以满足你的要求:
With Worksheets("Sheet1").Range(cell1,cell2).borders
.LineStyle=xlContinuous
.weight=xlThin
For I =1 to 40
End With
---- 好了,关于Excel的VB编程今天就讲到这儿吧。
--
张三慕李四
静心难静思
何必自相扰
涛声永不休
※ 来源:·北大 BBS.PKU.EDU.CN·[FROM: 162.105.20.22]
--
以科计为本,以产业报国!
超越自我,飞跃无限!
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.235.249]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.365毫秒