老问题了,关于一个工作簿内所有工作表内容复制粘贴到一个工作表,代码已经写好了,请高手帮忙优化
以下是VBA代码,复制到待合并的目标工作簿内某一新建的工作表代码窗口内,运行可以达到要求,但是运行有点慢。还有我想能不能这样,把代码保存到一个工作簿,以后不管想合并哪个工...
以下是VBA代码,复制到待合并的目标工作簿内某一新建的工作表代码窗口内,运行可以达到要求,但是运行有点慢。
还有我想能不能这样,把代码保存到一个工作簿,以后不管想合并哪个工作簿内的工作表内容,不用打开待合并的工作簿 ,只须打开这个有代码的工具工作簿,运行,就可以出现一个文件选择对话框,选择目标工作簿后,就可以把合并内容保存到有代码的工具工作簿的Sheet1的A2中,要怎样修改?求大师指点,谢谢!
Sub 合并工作表()
Dim sht As Worksheet
Application.ScreenUpdating = False
For Each sht In Worksheets
If sht.Name <> ActiveSheet.Name Then
X = Range("A65536").End(xlUp).Row
If X = 1 Then
Sheets(sht.Name).UsedRange.Copy Cells(X, 1)
Else
Sheets(sht.Name).UsedRange.Copy Cells(X + 1, 1)
End If
End If
Next
Range("A1").Select
Application.ScreenUpdating = True
n = Sheets.Count - 1 '计算表格个数
MsgBox "合并完毕," & "总共合并" & n & "个工作表!", vbInformation, "温馨提示"
End Sub 展开
还有我想能不能这样,把代码保存到一个工作簿,以后不管想合并哪个工作簿内的工作表内容,不用打开待合并的工作簿 ,只须打开这个有代码的工具工作簿,运行,就可以出现一个文件选择对话框,选择目标工作簿后,就可以把合并内容保存到有代码的工具工作簿的Sheet1的A2中,要怎样修改?求大师指点,谢谢!
Sub 合并工作表()
Dim sht As Worksheet
Application.ScreenUpdating = False
For Each sht In Worksheets
If sht.Name <> ActiveSheet.Name Then
X = Range("A65536").End(xlUp).Row
If X = 1 Then
Sheets(sht.Name).UsedRange.Copy Cells(X, 1)
Else
Sheets(sht.Name).UsedRange.Copy Cells(X + 1, 1)
End If
End If
Next
Range("A1").Select
Application.ScreenUpdating = True
n = Sheets.Count - 1 '计算表格个数
MsgBox "合并完毕," & "总共合并" & n & "个工作表!", vbInformation, "温馨提示"
End Sub 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询