关于用VB控件EXCEL

mingday 2002-12-27 12:57:22
我最近要做一项目,对方用的是EXCEL,我想问问大家,VB使用EXCEL这方面的技术

谢谢谢
...全文
273 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zmcpu 2002-12-28
  • 打赏
  • 举报
回复
---- 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

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”表示没有取
triken 2002-12-28
  • 打赏
  • 举报
回复
直接用EXCEL宏程序编写

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧