在Excel的VBA编程中,把文件A中的表1复制到文件B中表1的后面,这个程序怎么写?A,B都只有一个表。请看补充
例子:问题1:比如把,张三.xlsx中的sheet1,复制到汇总.xlsx中的sheet1之后。SetWb=Workbooks.Open(C:\张三.xlsx'定义Wb为...
例子:
问题1:
比如把,张三.xlsx中的 sheet1 ,复制到 汇总.xlsx中的sheet1之后。
Set Wb = Workbooks.Open(C:\张三.xlsx '定义Wb为被复制的表
Wb.Sheet(1).Copy After:=Worksheets("Sheet3") '等号之后,汇总表我要怎么定义?
问题2:
由于Open之后会有很多窗口打开,如何控制它最后关闭或者压根就在后台操作呢?
记得在代码上写注释哦亲 展开
问题1:
比如把,张三.xlsx中的 sheet1 ,复制到 汇总.xlsx中的sheet1之后。
Set Wb = Workbooks.Open(C:\张三.xlsx '定义Wb为被复制的表
Wb.Sheet(1).Copy After:=Worksheets("Sheet3") '等号之后,汇总表我要怎么定义?
问题2:
由于Open之后会有很多窗口打开,如何控制它最后关闭或者压根就在后台操作呢?
记得在代码上写注释哦亲 展开
4个回答
展开全部
Sub 复制()
Dim wb As Workbook, wt As Workbook
Set wb = Workbooks("张三.xlsx") '定义工作簿
wb.ActiveSheet.Range("a1:iv" & [A65536].End(xlUp).Row).Select '选择激活工作表的已使用区域
Selection.Copy '复制
Workbooks.Open ("C:\汇总.xlsx") '打开C盘汇总工作簿
Set wt = Workbooks("汇总.xlsx") '定义工作簿
wt.Worksheets("Sheet1").Select '选择汇总工作簿表1
r = [A65536].End(xlUp).Row + 1 '获取有效行最大行号+1的行
Range("a" & r).Select '选择最大行号+1行的A列单元格
Application.WindowState = xlMinimized '粘贴
ActiveSheet.Paste
Workbooks("汇总.xlsx").Close True '保存并关闭汇总工作簿
End Sub
Dim wb As Workbook, wt As Workbook
Set wb = Workbooks("张三.xlsx") '定义工作簿
wb.ActiveSheet.Range("a1:iv" & [A65536].End(xlUp).Row).Select '选择激活工作表的已使用区域
Selection.Copy '复制
Workbooks.Open ("C:\汇总.xlsx") '打开C盘汇总工作簿
Set wt = Workbooks("汇总.xlsx") '定义工作簿
wt.Worksheets("Sheet1").Select '选择汇总工作簿表1
r = [A65536].End(xlUp).Row + 1 '获取有效行最大行号+1的行
Range("a" & r).Select '选择最大行号+1行的A列单元格
Application.WindowState = xlMinimized '粘贴
ActiveSheet.Paste
Workbooks("汇总.xlsx").Close True '保存并关闭汇总工作簿
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
代码写在汇总表中,首先打开汇总表,然後执行代码即可
Dim wb
Set wb = Workbooks.Open("C:\张三.xlsx") '打开张三表
Windows("汇总.xlsx").Activate '选汇总.xlsx为当前工作簿
Workbooks("张三.xlsx").Sheets(1).Copy after:=ActiveWorkbook.Sheets(1) ‘复制
Workbooks("张三.xlsx").Close ’关闭张三表
Set wb = Nothing
希望成功采纳!
Dim wb
Set wb = Workbooks.Open("C:\张三.xlsx") '打开张三表
Windows("汇总.xlsx").Activate '选汇总.xlsx为当前工作簿
Workbooks("张三.xlsx").Sheets(1).Copy after:=ActiveWorkbook.Sheets(1) ‘复制
Workbooks("张三.xlsx").Close ’关闭张三表
Set wb = Nothing
希望成功采纳!
追问
哥们
Windows("汇总.xlsx").Activate '选汇总.xlsx为当前工作簿
这一段 如果已经知道文件路径,应该怎么写?你的代码不能执行。。
比如汇总.xlsx 已经存放在变量 path = C:\windows\汇总.xlsx 。
应该怎么写?而且激活的不应该是当前的吗?为什么是windows呢?
追答
相关的excel表都是要打开才能执行的,你可以设置不可见,但是必须打开才可以操作。
我的前提是先打开 汇总.xlsx,
在 汇总.xlsx 里执行以上代码,
张三.xlsx 是用代码打开关闭的...
Windows("汇总.xlsx").Activate 裏面的windows是vba的用法,并非你的路径里的windows...
汇总.xlsx 既然已经打开了还要它的路径做什麽呢?
如果你 汇总.xlsx 和 张三.xlsx 都没打开,在哪执行vba呢?
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把代码放到你要复制到的表中,也就是文件B中
dim wb as workbook
Set Wb = Workbooks.Open(C:\张三.xlsx)
Wb.workSheets(1).Copy After:=Worksheets(1)
wb.close
set wb=nothing
dim wb as workbook
Set Wb = Workbooks.Open(C:\张三.xlsx)
Wb.workSheets(1).Copy After:=Worksheets(1)
wb.close
set wb=nothing
追问
Wb.workSheets(1).Copy After:=Worksheets(1) 哥们你这是把张三.xlsx中的文件还是复制到张三里啊。。。。我是要复制到另一个工作薄中,也就是 汇总.xlsx中
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1. 这两个表都要被打开的.然后才能复制
2.等号后应该是workbooks("目标文件名").sheets("表名")
你自己试下,我没这样操作过
2.等号后应该是workbooks("目标文件名").sheets("表名")
你自己试下,我没这样操作过
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询