|
本帖最后由 mazeboy 于 2015-12-21 18:15 编辑
如下几行代码,每行代表什么意思呀,请帮我备注一下,
另外
如下代码合并时会选择所有的表格进行合并,如果让他只合并我指定的表格,
比如我只要合并sheet3 sheet5 sheet7 sheet9这4个表格,其它不要,应该怎么改________________________________________________________________________________
Sub 合并()
hd = Sheets(1).[a2:e2]
lr = 3
Application.ScreenUpdating = False '屏幕闪烁关闭
For Each sh In Sheets
If Not InStr(sh.Name, "合并") > 0 Then
sh.Activate
arr = sh.Range("a3:e" & [a65536].End(3).Row)
Debug.Print UBound(arr): Debug.Print sh.Name
Sheets(9).Select
Range(Cells(lr, "b"), Cells(lr + UBound(arr) - 1, "f")) = arr
Range(Cells(lr, "a"), Cells(lr + UBound(arr) - 1, "a")) = sh.Name
lr = lr + UBound(arr)
Erase arr
End If
Next
[a1] = "榜单": [b1:f1] = hd: Columns("a:f").AutoFit
Application.ScreenUpdating = True '屏幕闪烁打开
End Sub
- Sub 合并()
- hd = Sheets(1).[a2:e2] '将sheet(1)A2到E2赋值给hd
- lr = 3 'lr=3
- Application.ScreenUpdating = False '屏幕闪烁关闭
- For Each sh In Sheets '对所有工作表进行循环
- If Not InStr(sh.Name, "合并") > 0 Then '如果工作表名称不含“合并” 则
- sh.Activate '激活工作表
- arr = sh.Range("a3:e" & [a65536].End(3).Row) '将A3到E列最后一个非空单元格内容赋值给数组arr
- Debug.Print UBound(arr): Debug.Print sh.Name '打印arr数组上限 打印工作表名称
- Sheets(9).Select '选中sheet(9)
- Range(Cells(lr, "b"), Cells(lr + UBound(arr) - 1, "f")) = arr '将arr赋值给B(lr)到F(...)对应区域
- Range(Cells(lr, "a"), Cells(lr + UBound(arr) - 1, "a")) = sh.Name '将工作表名称赋值给A(lr)到A(...)对应区域
- lr = lr + UBound(arr) 'lr累加至arr数组上限
- Erase arr '清除arr
- End If
- Next
- [a1] = "榜单": [b1:f1] = hd: Columns("a:f").AutoFit 'A1=榜单 B1到F1等于hd A到F列自动为合适列宽
- Application.ScreenUpdating = True '屏幕闪烁打开
- End Sub
复制代码
|
|