阅读:1467回复:13
有没有人做过EXCEL编程???!!!快来帮帮我呀!
怎么用代码控制生成的EXCEL的特殊字段,字体变颜色,和给该字体添加批注呢???
还有,怎样实现录制宏呢?! 谢谢大家了! |
|
|
沙发#
发布于:2003-05-21 16:02
这都不知道? :D
|
|
板凳#
发布于:2003-05-21 16:07
这都不知道? :D 你知道? :D |
|
地板#
发布于:2003-05-21 16:20
这都不知道? :D 是不是看我今天没有心情打你PP就开始消化我了?! :D :cool: :D |
|
|
地下室#
发布于:2003-05-21 16:45
[quote]这都不知道? :D 是不是看我今天没有心情打你PP就开始消化我了?! :D :cool: :D [/quote] 打吧打吧。 |
|
5楼#
发布于:2003-05-21 17:01
[quote][quote]这都不知道? :D 是不是看我今天没有心情打你PP就开始消化我了?! :D :cool: :D [/quote] 打吧打吧。 [/quote] 打了我的这个功能也实现不了丫! 还是等我心情好的时候再打吧!!! :D :cool: :D |
|
|
6楼#
发布于:2003-05-21 17:04
[quote]这都不知道? :D 你知道? :D [/quote] 我也不知道,呵呵,那是因为没学。 |
|
7楼#
发布于:2003-05-21 17:09
[quote]这都不知道? :D 是不是看我今天没有心情打你PP就开始消化我了?! :D :cool: :D [/quote] 小新开始消化 DLM 了 :o |
|
|
8楼#
发布于:2003-05-21 17:14
我也不知道,但是得帮你up一下。
|
|
|
9楼#
发布于:2003-05-21 17:28
以下文字转载自 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) 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 //刚刚从网上找来的 不知道有没有用。。。。。。。。。 |
|
|
10楼#
发布于:2003-05-21 17:33
呵呵,谢谢!
我刚刚自己录制了一段宏,然后找出了有关批注的属性! 发现在生成的EXCEL中也有相同的comment属性! ^_^ 也就是说我的项目已经有了突破性的进展了! 谢谢你! 谢谢你帮我找的东东! :D :cool: :D |
|
|
11楼#
发布于:2003-05-21 17:35
这都不知道? :D ^_^ 我现在知道了,就来打碎小新的 PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP :cool: :D :cool: |
|
|
12楼#
发布于:2003-05-21 17:38
不好意思丫!
现在我是穷人啦,但是为了感谢大家,还是一贴两分吧! :D :cool: :D |
|
|
13楼#
发布于:2003-05-21 18:03
遭乐,来晚了,没有捞这分 :mad:
|
|