在EXCEL中用VBA操作WORD表格:怎样选择一个表格中除第一行以外的任意连续行(比如第2到4行)?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在EXCEL中用VBA操作WORD表格:怎样选择一个表格中除第一行以外的任意连续行(比如第2到4行)?相关的知识,希望对你有一定的参考价值。
在EXCEL中用VBA,打开一个WORD文档,该文档有多个格式完全相同的表格。希望把这些表格数据复制到当前操作的工作表中。第一行是标题行,后续是WORD文档中所有表格中的各行数据。
我的思路是:把第一个表格的标题行(第一行)复制粘贴到当前操作的工作表第一行,再分别复制各个表格的第二行到最后一行粘贴到工作表标题行下面的相应位置。
优点:较逐个把表格中数据读取到工作表速度快,且数据规范。
请高手支招,指导具体的选择WORD表格除标题行之外——选择第二行到最后一行、选择任意连续行(如2-4行)的实际可靠代码!
我的EXCEL版本是03版,好多能够直接在WORD文档中测试成功的代码,移植到EXCEL中操作均失败,初学WORD的VBA知识,实在是没有能力转过弯来,敬请高人指点!
谢谢!
补充说明:
1.WORD表格是常规表格,其中没有任何合并单元格。
2.在EXCEL界面操作时,编辑代码中不采取直接引用 Microsoft Word 11.0 Object Library的方法,而是采用后期绑定方式!
实际思路是:
wjM = ThisWorkbook.Path & "\111.doc"'带路径的文件名称
Set wApp = CreateObject("word.application") '创建word对象
Set wDoc = wApp.Documents.Open(wjM) '创建文档记录对象
…………
请指导后续具体操作代码——
With wDoc.Tables(1).Range
t = .Rows.Count'表格行数
'.MoveStart wdRow, 1'直接在WORD文档中指第2行到最后一行但在EXCEL中不能执行
.Select'选择
End With
…………
请给出正确代码,并用中文形式给予适当解释!
谢谢
Dim wDoc As Word.Document
Dim TC%, R%, C%
set wDoc = wApp.Documents.Open("要打开的文件")
TC = wDoc.Tables.Count
R = '从哪里开始你自己定吧
C =
If TC = 0 Then wDoc.Close : Exit Sub
For i = 1 To TC
With wDoc.Tables(i)
wDoc.Range(.Cell(2, 1).Range.Start, .Cell(.Rows.Count, .Columns.Count).Range.End).Select
Selection.Copy
xlSheet.Cells(R, C).Select
xlSheet.PasteSpecial Format:="文本" '选择为文体方式粘贴
R = R + .Rows.Count '控制行的位置为下一次粘贴
End With
Next
你在Excel里改成CreateObject方法也可引用也可
大概代码是这样了,细节部分你自己加上去吧
如果想速度最好把Word运行时Show出来,运行完关了就可以追问
谢谢cyclong2011的回答
测试
wDoc.Range(.Cell(2, 1).Range.Start, .Cell(.Rows.Count, .Columns.Count).Range.End).Select
未通过,提示——运行时错误,'451',property let 过程未定义,property get过程未返回对象!
请问你的wDoc对象引用有定义好了没?
我这里测试是没问题的
能否看下你的代码
谢谢指点,收益良多!
经过一点小修改后测试通过……
呵呵,不客气
参考技术A 选择选择第2行至第4行:Rows(2).Resize(5, 1).EntireRow.Select
选择A1到A4:
Range("A1:A4").Select
选择A1到B4:
Range("A1:B4").Select
怎样在word删除多余的表格
word多余的表格如何删除,下面具体介绍word多余的表格删除的操作步骤。
1、首先打开需要操作的Word文档,以删除表格中多余的列为例,鼠标框选住需要删除的列,选中的列呈灰色。
2、在选中的单元格上右击,在弹出的菜单中选择删除列。
3、这时可以看到多余的列已经被删除了。
4、删除多余的行也是如此,选中多余的行,使单元格呈灰色,在单元格上右击,选择删除单元格,这样就完成了。
参考技术Aword中的表格删除多余的行,只需要选中需要删除的行点击右键选择“删除行”即可。
将插入点定位在单元格中,单击“表格→绘制斜线表头”命令,出现对话框,单击“表头样式”下拉菜单选择一种样式(共有5种可选择),分别填入“行标 题”(右上角的项目)、“列标题”(左下角的项目)和“数据标题”(中间格的项目)以及“字体大小”等。
最后单击“确定”退出。删除斜线表头的方法是,单 击要删除的斜线表头,当周围出现选定标记时,按Del键即可删除该斜线表头。
使用构建基块快速构建文档
Microsoft Office Word 中的构建基块可用于通过常用的或预定义的内容(如免责声明文本、重要引述、提要栏、封面以及其他类型的内容)构建文档。这样就可以避免花费不必要的时间在各文档间重新创建或复制粘贴这些内容;还有助于确保在组织内创建的所有文档的一致性。
参考技术B 您好,方法1、首先打开一个含有表格的word文档,
2、点击左上角的符号全选表格,按照一般的做法,点击delete键,
3、这时候会发现,文字没有了,第一个单元格里有个光标,
4、我们现在重新选择整个表格,会看到弹出一个工具条,我们点击删除按钮。
5、点击“删除”按钮,选择“删除表格”。
6、还有一个方式就是选择表格,找到表格工具,
7、在表格工具下有个删除按钮,选择删除表格。
以上是关于在EXCEL中用VBA操作WORD表格:怎样选择一个表格中除第一行以外的任意连续行(比如第2到4行)?的主要内容,如果未能解决你的问题,请参考以下文章