使用Excel Userform信息获取文件名

我有一个关于用户表单的问题。 目前我有一个用macros设置的论坛button,它将向用户显示一个用户表单,用户将在这里input数据,然后将这6个表格中的5个作为新书保存。 我想这样做的文件名是基于ProjectName(Me.ProjectName.Value),在用户窗体中的第一个字段的值。 这是我到目前为止:

Private Sub CommandButton1_Click() Dim iRow As Long Dim ws As Worksheet Set ws = Worksheets("Data List") 'find first empty row in database iRow = ws.Cells.Find(What:="*", SearchOrder:=xlRows, SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1 'check for a Name number If Trim(Me.ProjectName.Value) = "" Then Me.ProjectName.SetFocus MsgBox "Please complete the form" Exit Sub End If 'copy the data to the database ws.Cells(iRow, 1).Value = Me.ProjectName.Value ws.Cells(iRow, 2).Value = Me.ProjectNumber.Value ws.Cells(iRow, 3).Value = Me.SPVComp.Value ws.Cells(iRow, 4).Value = Me.Contact.Value ws.Cells(iRow, 5).Value = Me.ProjMan.Value ws.Cells(iRow, 6).Value = Me.PODate.Value ws.Cells(iRow, 7).Value = Me.PONumber.Value ws.Cells(iRow, 8).Value = Me.PRNumber.Value ws.Cells(iRow, 9).Value = Me.EstTime.Value MsgBox "Data added", vbOKOnly + vbInformation, "Data Added" Sheets(Array("Document Data", "Invoice data", "Hours", "Summary", "Invoice")).Copy fname = Application.GetSaveAsFilename(Filename:=Me.ProjectName.Value, FileFilter:="Excel Files (*.xlsm), *.xlsm") ActiveWorkbook.SaveAs Filename:=fname, FileFormat:=52 'clear the data Me.ProjectName.Value = "" Me.ProjectNumber.Value = "" Me.SPVComp.Value = "" Me.Contact.Value = "" Me.ProjMan.Value = "" Me.PODate.Value = "" Me.PONumber.Value = "" Me.PRNumber.Value = "" Me.EstTime.Value = "" Me.ProjectName.SetFocus 

我得到的错误是在Filename:=上找不到名称参数。 我对VBA还是很新的,所以我不确定在这里做什么。 预先感谢您的帮助!

方法Application.GetSaveAsFileName不支持参数FileName 。 如果您想向用户build议初始文件名,请使用命名参数InitialFilename

参考