乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > <em>EXCEL</em>用VBA语言实现粘贴多个sheet指定列的代码-excel vba宏

<em>EXCEL</em>用VBA语言实现粘贴多个sheet指定列的代码-excel vba宏

作者:乔山办公网日期:

返回目录:excel表格制作


精简一点zhidao
Dim i As Integer
i = 2
Range(Cells(1, 1), Cells(2, i)).Copy Sheets(2).Range("a1")
如果要打开Sheets(2)工作表,在最后加上语句:Sheets(2).Activate
用以下语句也可以:
Range("a1").Resize(2, i).Copy Sheets(2).Range("a1")
说明:
Range对象的Resize属性是用于调整指定区域的大小,并返回调整后的单元格区域。
语法:Resize(RowSize,ColumnSize)
其中RowSize参数和ColumnSize参数分别代表调整后的单元格区域的行数和列数

n = Sheets(m).[IV1].End(xlToLeft).Column应为

n=sheets(m).cells(rows.count,"i").end(3).row
合并之前,请先创建一个空白的 Sheet 作为合并目标 Sheet ,这个 Sheet 必须是第一个 Sheet 哦。
如果不合并标题行(比copy如第一行)则 j=1 改为 j=2
如果数据不是从第一行,或者第一列开始的,请修改 j=1 及 k=2 两行的参数zd
比如 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

以上代码适用于,除了第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

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网