Excel 的VB编程

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 hh_bj 的 blog

 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

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

end with

本文关键:Excel 的VB编程
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top