【问题标题】:Vba save newly workbook with name in any user's system location [closed]Vba在任何用户的系统位置保存带有名称的新工作簿[关闭]
【发布时间】:2017-12-06 06:26:32
【问题描述】:

我想要一个自动保存在用户系统中的新工作簿创建,但路径不固定,所以有什么方法可以做到这一点。我不希望用户手动将名称 ins ave 作为对话框。我想要一个在运行时处理并将工作簿保存在用户特定位置的宏。(用户不同) 请提出相同的代码和方法。 我尝试了一些变体:

Sub sb_Copy_Save_ActiveSheet_As_Workbook()
Set wb = Workbooks.Add
ThisWorkbook.Activate
ActiveSheet.Copy Before:=wb.Sheets(1)
wb.Activate
wb.SaveAs "C:\temp\test3.xlsx"
End Sub 

这给了我一个错误,我想要一个允许任何用户在没有用户输入的情况下将文件保存在其位置的路径(另存为对话)。宏可以将文件保存在任何用户的系统中。

【问题讨论】:

  • “我想要一个宏”——还有一匹小马?通常情况下,您应该首先为解决自己的问题付出一些努力。
  • 我已经尝试过,但该代码不够相关,我的代码提供了另存为弹出窗口,如果您仔细阅读我的问题,那么我也在询问方法
  • @TimWilliams pricelss :)
  • 如果你不能给出建议,那没关系,但不要批评,也不要试图理解其他人的观点@Tim Williams
  • @yashikavaish 我不是在批评,蒂姆只是用“-和一匹小马”做了一个有趣的评论。直截了当,如果没有看到你的代码,你在哪里挣扎等等,就不可能帮助你......

标签: vba excel


【解决方案1】:

如果您将工作表复制到任何目的地,您最终会得到一个带有一个工作表的新工作簿(原始工作表的副本)。同时查找environ函数获取用户信息。

activesheet.copy
activeworkbook.saveas filename:=environ("TEMP") & "\test", fileformat:=xlOpenXMLWorkbook
activeworkbook.close savechanges:=false

【讨论】:

  • 谢谢,可以了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-27
  • 2021-08-04
相关资源
最近更新 更多