2015-08-20 36 views
1

我有一個關於用戶表單的問題。目前,我有一個設置了宏的論壇按鈕,它會向用戶顯示一個用戶窗體,用戶將在其中輸入數據,然後將這6個窗體中的5個作爲新書保存。我想這樣做,文件名是基於ProjectName(Me.ProjectName.Value)的值,這是用戶窗體中的第一個字段。這是我到目前爲止:使用Excel用戶表單文件名稱信息

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仍然很陌生,所以我不確定在這裏做什麼。預先感謝您的幫助!

回答

1

方法Application.GetSaveAsFileName不支持參數FileName。如果您想向用戶建議初始文件名,請改爲使用命名參數InitialFilename

Reference

+0

非常感謝! – jwoff

相關問題