现有100多个工作表,名称为第1表、第2表、……,需要依次复制每个表中的前两列到工作表“Sheet1"中。非常感谢!
各位,是一个xls,里面很多工作表的列,每表前两列复制到Sheet1工作表中的1、2、3、4、5、6、7、8……列。并列放置,谢谢
高分 excel宏VBA语言编写复制多列到一个工作表中
答案:6 悬赏:50 手机版
解决时间 2021-03-03 12:34
- 提问者网友:喧嚣尘世
- 2021-03-02 15:54
最佳答案
- 五星知识达人网友:白昼之月
- 2021-03-02 16:33
以上代码适用于,除了第n表外,只有一个sheet1的情况。
excel中vba的针对性还是蛮强的,需要考虑的情况是很多的。
打开工作表,工具,宏,安全性,中,确定
alt+f11
菜单,插入,模块,复制下面代码到右边空白区,存盘退出,重新打开文件,选择启用宏,然后alt+F8
选择 复制合并 这个宏,运行,即可
以下是代码
Sub 复制合并()
Application.ScreenUpdating = False
For i = 1 To Sheets.Count - 1
Sheets("第" & i & "表").Range("A:B").Copy Sheets("sheet1").Cells(1, i * 2 - 1)
Next
Application.ScreenUpdating = False
End Sub
excel中vba的针对性还是蛮强的,需要考虑的情况是很多的。
打开工作表,工具,宏,安全性,中,确定
alt+f11
菜单,插入,模块,复制下面代码到右边空白区,存盘退出,重新打开文件,选择启用宏,然后alt+F8
选择 复制合并 这个宏,运行,即可
以下是代码
Sub 复制合并()
Application.ScreenUpdating = False
For i = 1 To Sheets.Count - 1
Sheets("第" & i & "表").Range("A:B").Copy Sheets("sheet1").Cells(1, i * 2 - 1)
Next
Application.ScreenUpdating = False
End Sub
全部回答
- 1楼网友:风格不统一
- 2021-03-02 20:33
不用宏的办法:
sheet1的A1公式
=INDIRECT("第"&(INT((COLUMN()+1)/2)&"表!"&CHAr(65+MOD(COLUMN()-1,2))&ROW()))
向右向下拉公式。
- 2楼网友:渡鹤影
- 2021-03-02 19:21
Sub mycopy()
For i = 2 To Sheets.Count
Sheets(i).Range("A:B").Copy Sheets(1).Cells(1, 2 * i - 3)
Next i
End Sub
- 3楼网友:何以畏孤独
- 2021-03-02 19:01
你参考一下这个。
在同一文件夹中有多个工作簿,其中有一个用于汇总的工作簿,要求将除该汇总工作簿外的其它工作簿中的第一张工作表的数据汇总到该汇总工作簿中。代码如下:
Sub UnionWorksheets()
Application.ScreenUpdating = False
Dim lj As String
Dim dirname As String
Dim nm As String
lj = ActiveWorkbook.Path
nm = ActiveWorkbook.Name
dirname = Dir(lj & "\*.xls*")
Cells.Clear
Do While dirname <> ""
If dirname <> nm Then
Workbooks.Open Filename:=lj & "\" & dirname
Workbooks(nm).Activate
'复制新打开工作簿的第一个工作表的已用区域到当前工作表
Workbooks(dirname).Sheets(1).UsedRange.Copy _
Range("A65536").End(xlUp).Offset(1, 0)
Workbooks(dirname).Close False
End If
dirname = Dir
Loop
End Sub
另外,如楼上所说,你没有说明是并列放置,还是接在行下面。
- 4楼网友:动情书生
- 2021-03-02 17:56
http://hi.baidu.com/zacai/blog/category/excel%bc%bc%ca%f5
这里面通通都是excel vba实例
- 5楼网友:怙棘
- 2021-03-02 17:03
Sub test()
For i = 1 To 50
Sheets("第" & i & "表").Range("a:b").Copy Sheets("sheet1").Cells(1, i * 2 - 1)
Next
End Sub
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯