请解释一下这段“合并当前工作簿下的所有工作表”的VBA
Sub合并当前工作簿下的所有工作表()Application.ScreenUpdating=FalseForj=1ToSheets.CountIfSheets(j).Na...
Sub 合并当前工作簿下的所有工作表()
Application.ScreenUpdating = False
For j = 1 To Sheets.Count
If Sheets(j).Name <> ActiveSheet.Name Then
X = Range("A65536").End(xlUp).Row + 1
Sheets(j).UsedRange.Copy Cells(X, 1)
End If
Next
Range("B1").Select
Application.ScreenUpdating = True
MsgBox "当前工作簿下的全部工作表已经合并完毕!", vbInformation, "提示"
End Sub
For j = 1 To Sheets.Count
If Sheets(j).Name <> ActiveSheet.Name Then
X = Range("A65536").End(xlUp).Row + 1
Sheets(j).UsedRange.Copy Cells(X, 1)
End If
Next
Sheets(1).Activate
Range("B1").Select
如上,请问多了“Sheets(1).Activate”又是表达什么意思呢? 展开
Application.ScreenUpdating = False
For j = 1 To Sheets.Count
If Sheets(j).Name <> ActiveSheet.Name Then
X = Range("A65536").End(xlUp).Row + 1
Sheets(j).UsedRange.Copy Cells(X, 1)
End If
Next
Range("B1").Select
Application.ScreenUpdating = True
MsgBox "当前工作簿下的全部工作表已经合并完毕!", vbInformation, "提示"
End Sub
For j = 1 To Sheets.Count
If Sheets(j).Name <> ActiveSheet.Name Then
X = Range("A65536").End(xlUp).Row + 1
Sheets(j).UsedRange.Copy Cells(X, 1)
End If
Next
Sheets(1).Activate
Range("B1").Select
如上,请问多了“Sheets(1).Activate”又是表达什么意思呢? 展开
3个回答
展开全部
估计是太简单了没有愿意回答。。。。
Sub 合并当前工作簿下的所有工作表()
Application.ScreenUpdating = False '关闭刷新
For j = 1 To Sheets.Count 'Sheets.Count为当前工作簿下的工作表个数
If Sheets(j).Name <> ActiveSheet.Name Then '如果第j个工作表的表名 不等于 当前工作表的表名
X = Range("A65536").End(xlUp).Row + 1 '活动工作表的A列末行数据的下一行 的行号
Sheets(j).UsedRange.Copy Cells(X, 1) '将第j个工作表使用的区域 复制到 A列第X行
End If
Next
Range("B1").Select '光标移至当前工作表的B1单元格
Application.ScreenUpdating = True '打开刷新
MsgBox "当前工作簿下的全部工作表已经合并完毕!", vbInformation, "提示" '弹出提示窗口,窗口内显示"当前工作簿下的全部工作表已经合并完毕!"
End Sub
展开全部
Application.ScreenUpdating = False
'禁用屏幕刷新,以加快运行速度。
For j = 1 To Sheets.Count
'对于所有的工作表,从表1开始,直到最后一个工作表,逐个运行下面的程序(判断程序)
If Sheets(j).Name <> ActiveSheet.Name Then
'对于任意一个(第 i 个),如果它的工作表名,不是当前工作表名,那么,运行下面的程序
X = Range("A65536").End(xlUp).Row + 1
'定义 X 的值=当前工作表A列的第一个空单元格所对应的行序号
Sheets(j).UsedRange.Copy Cells(X, 1)
'复制第 i 个工作表的所有有数据的单元格,并粘贴到当前工作表的A列的第一个空单元格
End If
'结束判断程序
Next
'下一个循环(即下一个工作表)
Range("B1").Select
'选择当前工作表的B1单元格
Application.ScreenUpdating = True
'刷新屏幕
MsgBox "当前工作簿下的全部工作表已经合并完毕!", vbInformation, "提示"
'调用系统对话框,并提示:"当前工作簿下的全部工作表已经合并完毕!"
更多追问追答
追问
请问工作簿中的工作表名称是否会影响合并程序的运行,我刚刚试了一下,发现运行不了
追答
不会的,因为同一个工作薄的工作表的名称是不能重复,不可能出现与当前工作表相同名称的工作表。
再者,循环体调用的是工作表的序号,即第几个工作表(如sheet1),而不是调用以表名称命名的工作表(如sheets("sheet1"))。
你所补充的Sheets(1).Activate,意思是:激活工作薄的第一个工作表
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询