excel - Excel VBA - 从单元格值另存为建议的文件名和文件路径
问题描述
我在 Excel 工作簿中有一个宏,它连接到一个显示导出的按钮
当我单击该按钮时,它会触发“导出 XML ”对话框,我必须手动搜索文件夹以将其导出并输入文件名。
由于我的文档中的文件夹的名称与单元格 A24 的值完全相同,因此我希望它能够将自己引导到正确的文件夹中,并根据单元格 A24 的值向我建议一个文件名,并在其后面加上一些额外的文本。
到目前为止,我在 VBA 中有这个:
Public Sub ExportToXML()
Dim strFilePath As String
Dim POFilePath As String
Dim FOFilePath As String
Dim POFileName As String
Dim FOFileName As String
Dim XMLDoc As MSXML2.DOMDocument
Dim xNode As MSXML2.IXMLDOMNode
Dim xAttribute As MSXML2.IXMLDOMAttribute
Dim xElement As MSXML2.IXMLDOMElement
Dim xElementRoot As MSXML2.IXMLDOMElement
Application.ScreenUpdating = False
MainSheetName = ActiveSheet.Name
POFilePath = "C:\Users\admin\Desktop\" & Range("A24")
FOFilePath = "C:\Users\admin\Desktop\" & Range("D22") & " " & Range("A22")
POFileName = "_report " & Range("D13").value & " " & Range("F13").value & ".xml"
FOFileName = "_report " & Range("D13").value & " " & Range("F13").value & ".xml"
If Range("A24").value = "0" Then
strFilePath = Application.GetSaveAsFilename(FOFilePath & FOFileName, fileFilter:="XML files (*.xml),*.xml", Title:="Save FileAs...")
Else
strFilePath = Application.GetSaveAsFilename(POFilePath & POFileName, fileFilter:="XML files (*.xml),*.xml", Title:="Save FileAs...")
End If
If strFilePath = "False" Then Exit Sub
这给了我正确的文件名建议,但它不会将我定向到文件夹并转到桌面。
任何帮助将不胜感激!
编辑:
我尝试将字符串更多地合并在一起并想出了这个:
Public Sub ExportToXML()
Dim strFilePath As String
Dim POFilePath As String
Dim FOFilePath As String
Dim XMLDoc As MSXML2.DOMDocument
Dim xNode As MSXML2.IXMLDOMNode
Dim xAttribute As MSXML2.IXMLDOMAttribute
Dim xElement As MSXML2.IXMLDOMElement
Dim xElementRoot As MSXML2.IXMLDOMElement
Application.ScreenUpdating = False
MainSheetName = ActiveSheet.Name
POFilePath = "C:\Users\admin\Desktop\" & Range("A24") & Range("A24").value & "_report " & Range("D13").value & " " & Range("F13").value & ".xml"
FOFilePath = "C:\Users\admin\Desktop\" & Range("D22") & " " & Range("A22") & "_report " & Range("D13").value & " " & Range("F13").value & ".xml"
If Range("A24").value = "0" Then
strFilePath = Application.GetSaveAsFilename(FOFilePath, fileFilter:="XML files (*.xml),*.xml", Title:="Save FileAs...")
Else
strFilePath = Application.GetSaveAsFilename(POFilePath, fileFilter:="XML files (*.xml),*.xml", Title:="Save FileAs...")
End If
If strFilePath = "False" Then Exit Sub
问题是,VBA 认为:
POFilePath = "C:\Users\admin\Desktop\" & Range("A24") & Range("A24").value & "_report " & Range("D13").value & " " & Range("F13").value & ".xml"
第一个 Range("A24") 属于文件名部分,不会继续使用文件路径。因此,如果 A24 中的值为“test”,那么这建议将 xml 保存到桌面,文件名为 testttest_report 11 2020
解决方案
推荐阅读
- laravel - Laravel:搜索查询过滤器
- php - 如何在laravel中搜索json数组对象
- java - Eclipse 在创建 Android 项目时出现一堆错误
- c - 并排打印方阵旋转 C
- internet-explorer - 如何使用没有 ID 的 VBScript 单击图像网页
- ruby-on-rails - 如果用户记录包含无效数据,Rails 设计重置密码失败
- reactjs - 查看时数据从页面中消失
- java - Android studio gradle.build 在午餐应用程序时出现问题
- python - PostgreSQL Sqlalchemy 提交需要很多时间
- javascript - 平移时如何在threejs中平移对象的质心