你的代码基本上都差不多了,我没测试,看样子是你的思路有点问题(循环不对)
你可以先生成1个表格,再处理表格的数据。
也可以把所有表格全部生成,再处理表格数据,
看你的代码,你选择的是第2种,不管是哪种,肯定是多重循环的,你的代码只有1重循环。
思路如下:
for 表格数
生成这个表格,得到表格对象
for 表格的行
for 表格行的单元格
单元格="单元格的内容"
next
next
next
呵呵,不知道说清楚没有
re: 表格列宽鼠标拖动 黑旋风 2006-09-18 09:35
@陈朋奕.
哦?你认识我吗?叫黑旋风的人不少哦!不知我傍了哪个大侠的威名....(偷笑ing....)
顺便提一下,像你这样的程序,我个人觉得是否改成模板要方便些呢?你用word做一个模板,把表格什么的全都先写好,然后保存成模板文件。然后你再用程序加载这个模板,然后往模板里填写数据。这样难度要低一些。不过具体情况具体分析。(个人意见)
之前我不是说了如果是自己创建的表格可以很方便的得到表格对象吗?就在创建时直接取得了。其实还有另外一种办法就是:你的其他程序都不变,只把出错的那句话改成:
wdApp.ActiveDocument.Tables(1).Cell(2, 3).Select
就像我开篇说的,word、excel这些集合的下标都是从1开始,然后只要找到表格那个集合,然后选取第一个表格就是要操作的表格了(因为程序只创建了一个表格)。
如果是模板的话,就应该是对已经存在的表格进行操作了,就只有用这中办法弄了。不知道我说清楚没有。
不好意思啊,上次在自己机器上测试了一下,没有拷全部代码,不过就这个应该也能理解到呀,table就是要操作的那个table,一个word里面有可能有多个table,我们首先要选中要操作的那个table,我们这个table是自己用代码生成的,所以有一个方便的代码就是
dim Table
set Table = wdApp.ActiveDocument.Tables.Add(wdApp.Application.Selection.Range, NumRows:=27, NumColumns _
:=7, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
wdAutoFitFixed)
修改你的程序里面插入table的那句话即可
---------------------------------------------
谢谢关注风之谷,下次多写一些关于这方面的东西,网上这方面的其实东西不少,但是不全,下次整理一下发上来,不过最近怕是没什么时间了,呵呵!
接着上次那个程序来。。。
Set mySelection = wdApp.Documents.Application.Selection
mySelection.Cells.Borders(-7).LineStyle = 1
'选中表格的第2行第3列
table.Cell(2, 3).Select
'向下移动6格,第1个参数和第3个是常数
Call wdBook.Application.Selection.MoveDown(5, 6, 1)
'合并
wdBook.Application.Selection.Cells.Merge
'拆分成7行2列
Call wdBook.Application.Selection.Cells.Split(7, 2, True)
看你的代码是想增加一个表格,VBA的代码和VB的代码是不一样的,需要转换一下,多用几次就清楚了。
应该这样写
Call wdBook.Tables.Add(wdBook.application.Selection.Range, 16, 5, 1, 0)