作者:乔山办公网日期:
返回目录: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