EXCEL用宏命令调用其他工作薄的特定工作表,该怎么写
SubCombineWorkbooks()DimFilesToOpenDimxAsIntegerOnErrorGoToErrHandlerApplication.Scre...
Sub CombineWorkbooks() Dim FilesToOpen Dim x As Integer On Error GoTo ErrHandler Application.ScreenUpdating = False FilesToOpen = Application.GetOpenFilename(FileFilter:="MicroSoft Excel文件(*.xls),*.xls", MultiSelect:=True, Title:="要合并的文件") If TypeName(FilesToOpen) = "Boolean" Then MsgBox "没有选中文件" GoTo ExitHandler End If x = 1 While x <= UBound(FilesToOpen) Workbooks.Open Filename:=FilesToOpen(x) Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) x = x + 1 WendExitHandler: Application.ScreenUpdating = True Exit SubErrHandler: MsgBox Err.Description Resume ExitHandlerEnd Sub?这个宏的命令是一个工作薄里导入其他工作薄,但是是整个导入,而不能甄别特定的工作表。若想要改这个EXCEL的宏,增加新功能,比如用此宏在:新建文件.XLS 打开会提示选择工作薄,然后选择导入 1.XLS、2.XLS、3.XLS 工作薄,此时增加筛选项,筛选导入工作薄里的特定工作表,如工作薄 1.XLS、2.XLS、3.XLS 下的子表【消息】。要怎么做呢。
其实是类似的问题
http://zhidao.baidu.com/question/556536881.html# 展开
其实是类似的问题
http://zhidao.baidu.com/question/556536881.html# 展开
5个回答
展开全部
Sub CombineWorkbooks()
Dim FilesToOpen
Dim x As Integer
On Error GoTo ErrHandler
Application.ScreenUpdating = False
FilesToOpen = Application.GetOpenFilename(FileFilter:="MicroSoft Excel文件(*.xls),*.xls", MultiSelect:=True, Title:="要合并的文件")
If TypeName(FilesToOpen) = "Boolean" Then
MsgBox "没有选中文件"
GoTo ExitHandler
End If
dim shn '增加的第1句
dim i '增加的第2句
shn= InputBox("请输入需要导入的Sheet名", "导入") '增加的第3句
x = 1
While x <= UBound(FilesToOpen)
Workbooks.Open Filename:=FilesToOpen(x)
for i=1 to sheets.count '增加的第4句
if sheets(i).name=shn then Sheets(i).Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) '此句有修改
next i '增加的第5句
x = x + 1
Wend
ExitHandler:
Application.ScreenUpdating = True
Exit Sub
ErrHandler:
MsgBox Err.Description
Resume ExitHandler
End Sub
Dim FilesToOpen
Dim x As Integer
On Error GoTo ErrHandler
Application.ScreenUpdating = False
FilesToOpen = Application.GetOpenFilename(FileFilter:="MicroSoft Excel文件(*.xls),*.xls", MultiSelect:=True, Title:="要合并的文件")
If TypeName(FilesToOpen) = "Boolean" Then
MsgBox "没有选中文件"
GoTo ExitHandler
End If
dim shn '增加的第1句
dim i '增加的第2句
shn= InputBox("请输入需要导入的Sheet名", "导入") '增加的第3句
x = 1
While x <= UBound(FilesToOpen)
Workbooks.Open Filename:=FilesToOpen(x)
for i=1 to sheets.count '增加的第4句
if sheets(i).name=shn then Sheets(i).Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) '此句有修改
next i '增加的第5句
x = x + 1
Wend
ExitHandler:
Application.ScreenUpdating = True
Exit Sub
ErrHandler:
MsgBox Err.Description
Resume ExitHandler
End Sub
更多追问追答
追问
没有导入数据,反而是将选中的工作薄全打开了。。。怎么破
追答
如果方便请把你的QQ告知我,然后发文件给我,我帮你看看!
展开全部
打开导入工作簿,点击按钮,1.xls, 2.xls, 3.xls工作簿消息工作表数据依次导入“导入”工作簿中,rar中包括4个工作簿,不明白hi我。
更多追问追答
追问
用不来= =我要导的表又不一定是【消息】。。。
追答
如工作薄 1.XLS、2.XLS、3.XLS 下的子表【消息】。要怎么做呢。
代码是根据你提问中的这句意思编写,肯定是没有问题的,你总不可能1.xls中导的表是“消息”,2.xls中要导的表又是“X”,3.xls再来个“Y"吧?具体要导的工作表名称可以改的,现在是根据你的提问我的回答是正确的就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Windows("1.xls").Activate
Sheets("消息").Select
Sheets("消息").Select
更多追问追答
追问
这是什么东西!?
追答
宏中间的二句,如果你的三个电子薄都打开着,第一句就是使1.xls被选中,第二句就是消息电子表被选中,以后你就可以操作表中数据了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-06-06
展开全部
Sub CombineWorkbooks()
Dim FilesToOpen
Dim x As Integer
On Error GoTo ErrHandler
Application.ScreenUpdating = False
Dim FilesToOpen
Dim x As Integer
On Error GoTo ErrHandler
Application.ScreenUpdating = False
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个问题是为了实现那个类似问题的效果?
你把文件发我邮箱,邮箱里写清楚需求,我给你写个代码。
wwiw414@163.com
你把文件发我邮箱,邮箱里写清楚需求,我给你写个代码。
wwiw414@163.com
更多追问追答
追问
就是我提问里要求的效果啊
追答
发文件吧,写代码不想折腾。
直接说太耗时。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询