请解释一下这段“合并当前工作簿下的所有工作表”的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”又是表达什么意思呢?
展开
 我来答
眯住眼串针
科技发烧友

2016-07-12 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:1.1万
采纳率:58%
帮助的人:3091万
展开全部

估计是太简单了没有愿意回答。。。。

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
tlxwd
2016-07-12 · TA获得超过1148个赞
知道大有可为答主
回答量:1592
采纳率:66%
帮助的人:704万
展开全部
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,意思是:激活工作薄的第一个工作表
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
耍我么
2018-06-16
知道答主
回答量:6
采纳率:0%
帮助的人:6451
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式