Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2656|回复: 2

[已解决]为什么生成路径不一样?

[复制链接]
发表于 2014-10-20 22:58 | 显示全部楼层 |阅读模式
本帖最后由 dfadas 于 2014-10-21 13:16 编辑

Sub 宏1()
    Dim sh As Worksheet
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    For Each sh In Worksheets
        sh.Copy
        ActiveWorkbook.Close True, ThisWorkbook.Path & "\" & sh.Name & ".xlsx"
    Next
End Sub

Sub 宏2()
    Dim sh As Worksheet
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    For Each sh In Worksheets
        sh.Copy
        ActiveWorkbook.Close True, ActiveWorkbook.Path & "\" & sh.Name & ".xlsx"
    Next
End Sub

工作簿在桌面,桌面路径为D:\My Documents\桌面
宏1生成路径为D:\My Documents\桌面
宏2生成路径为D:\
最佳答案
2014-10-21 08:53
宏2产生的路径是刚复制的工作簿路径,那是没有路径的,用以下语句可以验证:
Sub 宏2()
    ......
    For Each sh In Worksheets
        sh.Copy
        abc = ActiveWorkbook.Path & "\"
        ActiveWorkbook.Close True, ActiveWorkbook.Path & "\" & sh.Name & ".xlsx"
    Next
End Sub
发表于 2014-10-20 23:49 | 显示全部楼层
两段代码的区别在于ThisWorkbook与ActiveWorkbook,这两个的区别在于,前者是代码所在工作簿;后者是当前操作的工作簿(活动工作簿)
回复

使用道具 举报

发表于 2014-10-21 08:53 | 显示全部楼层    本楼为最佳答案   
宏2产生的路径是刚复制的工作簿路径,那是没有路径的,用以下语句可以验证:
Sub 宏2()
    ......
    For Each sh In Worksheets
        sh.Copy
        abc = ActiveWorkbook.Path & "\"
        ActiveWorkbook.Close True, ActiveWorkbook.Path & "\" & sh.Name & ".xlsx"
    Next
End Sub
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-26 05:05 , Processed in 0.235032 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表