【问题标题】:VBA Excel save .xlsx file with the flexible nameVBA Excel 以灵活的名称保存 .xlsx 文件
【发布时间】:2020-02-18 16:59:36
【问题描述】:

我想用灵活的名称保存我的文件,该名称会随着单元格值的变化而变化。

唯一的答案就在这里:

Save a file with a name that corresponds to a cell value

但是,我还想要名称的一些固定部分,与上面查询中描述的部分不同,它不会改变。

基于此解决方案,我尝试编写如下内容:

Sub Save ()
Dim name As String, Custom_Name As String

name = Range("A2").Value
Custom_Name = "NBU" & name & "- Opportunity list.xlsx"
ActiveWorkbook.SaveAs Filename:=Custom_Name

实际上,我得到一个错误:

此扩展名不能与所选文件类型一起使用。在文件名文本框中更改文件扩展名或通过更改另存为类型来选择不同类型的文件。

我希望这个文件的扩展名为 .xlsx。

Excel VBA - save as with .xlsx extension

上面的答案与我的情况并不相符。 如果可能,删除新保存的文件中的所有表单控制按钮至关重要。

感谢和问候,

End Sub

【问题讨论】:

  • 您的代码仅设置要在您打算保存工作簿时使用的名称。您是否有一段代码可以进行保存?我不喜欢查看其他不能满足您需要的代码。你能清楚地解释你不想让你的代码做什么吗? ActiveWorkbook.SaveAs Filename:=Custom_Name 还不够吗?
  • 我已经添加了你的代码。对不起,我完全忘记了这个sn-p。现在我收到一个错误。我用缺少的代码部分更新了我的查询。我的文件名是 Opportunity v1.0.xslm,如果它可以在某些时候提供帮助的话。提前谢谢你。
  • 将您的线路ActiveWorkbook.SaveAs Filename:=Custom_Name 转换为ActiveWorkbook.SaveAs Filename:=Custom_Name, FileFormat:= xlWorkbookDefault。但是,当然,您的Range("A2") 单元格中必须有一个字符串...

标签: excel vba


【解决方案1】:

列出的例程中没有保存文件的操作。它只是简单地获取一个单元格的内容并创建一个带有包装值的字符串。

我不完全确定您的目标是什么,但您需要从您提供的第二个链接添加操作。 Workbook.SaveAs Method

请参阅下面的代码,了解我为测试而创建的工作示例。

Public Sub Save()
    Dim name As String, Custom_Name As String

    name = Range("A2").Value
    Custom_Name = ThisWorkbook.Path & "\" & "NBU" & name & " - Opportunity list.xlsx"

    'Disable alert when saving
    Application.DisplayAlerts = False

    'Save the workbook.
    ActiveWorkbook.SaveAs Filename:=Custom_Name, FileFormat:=51

End Sub

您应该注意,执行此代码后,您现在将位于新创建的文件中。这不是出口。

对此进行测试,如果您有任何问题,请告诉我。 您的代码中有一些似乎是不必要的,但如果您发现这可以解决您的第一个问题,我们可以解决这些问题。

编辑:

我还会专门调用带有范围的工作表。

name = Worksheets("Sheet1").Range("A2")

【讨论】:

  • 我会使用单元格 A2 来全名文件。没有充分的理由对 VBA 代码中的前缀和后缀进行“硬编码”。您可以在单元格中的公式中完成所有操作。
  • 也是一种方式,谢谢:)
【解决方案2】:

您说文件名是“Opportunity v1.0.xslm”。会有宏吗?如果工作簿中有代码,我的 Excel 版本会抱怨使用 .xlsx。

【讨论】:

  • 基本上我想保存无宏工作簿。这就是我想要它在 .xslx 版本中的原因。
猜你喜欢
  • 2018-06-02
  • 2019-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多