Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 从单元格值提示文件名_Vba_Excel - Fatal编程技术网

Vba 从单元格值提示文件名

Vba 从单元格值提示文件名,vba,excel,Vba,Excel,我将在Excel工作表上放置一个按钮,该按钮将作为当前工作表保存到一个单独的文件中。以下是我正在使用的代码: Sub SaveWorkbook() ActiveSheet.Copy ActiveWorkbook.SaveAs Filename:= _ "C:\Users\username\Downloads\New folder" & ActiveSheet.Name & ".xlsx", FileFormat:= _ xlExcel8, Password:="", Write

我将在Excel工作表上放置一个按钮,该按钮将作为当前工作表保存到一个单独的文件中。以下是我正在使用的代码:

Sub SaveWorkbook()

ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\username\Downloads\New folder" & ActiveSheet.Name & ".xlsx", FileFormat:= _
xlExcel8, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False

End Sub
在这里,我不想使用工作表名称(ActiveSheet.name),而是要放置单元格中的文本(D2:E2,两个单元格合并)

有可能吗

在这里我还明确提到了路径

是否可以提示选择保存路径

选择路径时,可以从单元格中获取名称

更新:

Sub SelectFolder()
    Dim diaFolder As FileDialog

    Set diaFolder = Application.FileDialog(msoFileDialogFolderPicker)
    diaFolder.AllowMultiSelect = False
    diaFolder.Show
    ActiveSheet.Copy
    ActiveWorkbook.SaveAs Filename:= _
    diaFolder & ActiveSheet.[d2] & ".xlsx", FileFormat:= _
    xlExcel8, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False

    Set diaFolder = Nothing
End Sub

你能看到这里的错误吗?文件未保存在所选路径中。

ActiveSheet.Name
替换为
ActiveSheet。[d2]

这将从合并的单元格中提取值

就从用户处获取路径而言,使用以下工具很容易:

Application.FileDialog(msoFileDialogFolderPicker)

是的,只需使用.Range(“D2:E2”)。值您可能只需要D2@Excel英雄,非常感谢。。。我可以替换d2中的值。但是不能放第二个。你能编辑问题中给出的代码吗?我给了你正确的射击目标。你为什么不接受我的答案?我试着将代码融入我的代码中。但是我有一些错误。你能看出是什么问题吗?提示您选择文件夹,文件已保存,但未保存在所选路径中。请提出新问题。这将是相关的。通常,最好在这里发布的问题中问一个问题。你问了两个问题,都得到了回答。然后你用这些答案更新了你的帖子。最好提出一个新问题,明确哪些东西现在不起作用。