急!!!在excel中怎样合并单元格

breezem 2003-03-25 07:30:03
供货厂商 货物种类 一月 二月
数量 金额 数量 金额
青铜峡
铝刚 90423 1161569 90423 1161569
29239 374990 29239 374990
60 769500 620 7629500
A3103 349 1913745 210 7619500
1423 152497 360 76239500
53002 707577 602 7236500
704805 1053671 601 76500
A356 30186 437697 605 76950
铝锭 77494 104053563 210 76900
4623 6186967 230 79500
黄铜峡
贴刚2 430423 569 423 161569
34 7500 20 76500
C1033 9 13745 210 7600
002 77577 62 500
4805 13671 61 6500
b356 186 4697 65 50
签铝 7744 1053563 20 760
623 686967 430 79500
...全文
3686 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
limit 2003-03-26
  • 打赏
  • 举报
回复
我事先是否需要限定义好表样式呢?

利用Excel对象,VB可以对Excel进行各种各样的操作,如单元格的合并、定义单元格的格式、打印纸张格式的设定等等。
你不需要定义表样式,当然这样做的代码量会很大。
如果你的表样式相对固定而且经常需要用到的话,我建议你做成Excel模板,VB打开模板后直接往里面写数据就行了。

具体的编程你可以在网上查一查,很多资料。
lxcc 2003-03-26
  • 打赏
  • 举报
回复
Range("A1:A8").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
.MergeCells = False
End With
Selection.Merge
breezem 2003-03-26
  • 打赏
  • 举报
回复
系统默认会跳出一个提示是否要合并的确认窗口,
请问我如何让他不弹出这个提示对话框呢?
lihonggen0 2003-03-26
  • 打赏
  • 举报
回复
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



qiqif 2003-03-26
  • 打赏
  • 举报
回复
xlSheet1.range("A1:D1").merge
在vb写。就是合并a到d的列
breezem 2003-03-26
  • 打赏
  • 举报
回复
limit(梦锦)
我事先是否需要限定义好表样式呢?
twinking()
是在vb程序中如何实现
twinking 2003-03-25
  • 打赏
  • 举报
回复
什么意思?
是在VB中还是在EXCEL中啊?
呵呵
limit 2003-03-25
  • 打赏
  • 举报
回复
Set xlSheet1 = xlBook.Worksheets(1)
xlSheet1.cells(1,1).value ="职务表"
'**************************
xlSheet1.range("A1:D1").merge
'*************************

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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