如何利用宏(VBA)将多个excel表上的内容复印、粘贴到另一张表上
答案:2 悬赏:20 手机版
解决时间 2021-02-21 15:05
- 提问者网友:疯孩纸
- 2021-02-21 09:35
我有一份工程BOM清单(工作薄))里面有951个工作表(Sheet1至Sheet951),它们格式一至,怎样把这951个工作表上的内容一次性复制到一个工作表中(Sheet952)!
最佳答案
- 五星知识达人网友:笑迎怀羞
- 2021-02-21 10:47
合并之前,请先创建一个空白的 Sheet 作为合并目标 Sheet ,这个 Sheet 必须是第一个 Sheet 哦。
如果不合并标题行(比如第一行)则 j=1 改为 j=2
如果数据不是从第一行,或者第一列开始的,请修改 j=1 及 k=2 两行的参数。
比如 j=2 k=3 表示从 第2行,第3列开始的数据。
Sub CombineSheet()
Dim i, j, k, n As Integer
n = 1
For i = 2 To ThisWorkbook.Sheets.Count
For j = 2 To ThisWorkbook.Sheets(i).UsedRange.Rows.Count
For k = 1 To ThisWorkbook.Sheets(i).UsedRange.Columns.Count
ThisWorkbook.Sheets(1).Cells(n, k).Value = ThisWorkbook.Sheets(i).Cells(j, k).text
Next k
n = n + 1
Next j
Next i
End Sub
如果不合并标题行(比如第一行)则 j=1 改为 j=2
如果数据不是从第一行,或者第一列开始的,请修改 j=1 及 k=2 两行的参数。
比如 j=2 k=3 表示从 第2行,第3列开始的数据。
Sub CombineSheet()
Dim i, j, k, n As Integer
n = 1
For i = 2 To ThisWorkbook.Sheets.Count
For j = 2 To ThisWorkbook.Sheets(i).UsedRange.Rows.Count
For k = 1 To ThisWorkbook.Sheets(i).UsedRange.Columns.Count
ThisWorkbook.Sheets(1).Cells(n, k).Value = ThisWorkbook.Sheets(i).Cells(j, k).text
Next k
n = n + 1
Next j
Next i
End Sub
全部回答
- 1楼网友:一秋
- 2021-02-21 11:16
忘记说了,要加入word的object library才行的。
方法:
在excel的vb编辑器菜单中,选“工具”---“引用”---在那列表中往下找“microsoft word 9.0 object library”,把它前面的框勾上,确定。
这样执行就没错了。
sub macro1()
dim appwd as word.application, doc as object
range("a1:c3").select
selection.copy
set appwd = createobject("word.application")
appwd.visible = true
set appwd = getobject(, "word.application")
set doc = getobject("d:\doc1.doc")
appwd.visible = true
with appwd.selection.find
.text = "指定位置"
.wrap = wdfindcontinue
end with
appwd.selection.find.execute
appwd.selection.moveright unit:=wdcharacter, count:=1
appwd.selection.typeparagraph
appwd.selection.moveleft unit:=wdcharacter, count:=1
appwd.selection.pasteexceltable false, false, false
appwd.quit (wdsavechanges)
end sub
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯