Excel VBA-创建可变工作簿名称&;将其保存到桌面

Excel VBA-创建可变工作簿名称&;将其保存到桌面,excel,vba,Excel,Vba,在我的代码中,我想提示用户输入自定义工作簿名称,然后将所述工作簿保存在桌面上。由于某些原因,当我尝试将工作簿设置为文件路径时,我遇到了一个运行时错误9-下标超出范围。我在其他的帖子上做了一些调查,我不确定为什么我仍然得到这个错误。有没有比我的更好的方法/我的错误在哪里 Dim WB As Workbook Dim WS As Worksheet Dim WorkbookName As String Dim FilePath As String Workbo

在我的代码中,我想提示用户输入自定义工作簿名称,然后将所述工作簿保存在桌面上。由于某些原因,当我尝试将工作簿设置为文件路径时,我遇到了一个运行时错误9-下标超出范围。我在其他的帖子上做了一些调查,我不确定为什么我仍然得到这个错误。有没有比我的更好的方法/我的错误在哪里

    Dim WB As Workbook
    Dim WS As Worksheet
    Dim WorkbookName As String
    Dim FilePath As String
    WorkbookName = InputBox("What Do you Want to Name the New Workbook?")
    FilePath = "C:\Users\JoeK\Desktop\" & WorkbookName & ".xlsx"

'error is at the line below

    Set WB = Workbooks(FilePath)
    Set WS = Sheets("Sheet1")
  • Set wb=Workbooks.Add
    -添加工作簿,因此工作簿为空
  • wb.SaveAs filePath
    -将其保存到桌面上的
    filePath
  • wb.Close False
    -也需要关闭它,
    False
    参数用于保存更改。只要工作簿中没有任何操作,此参数也可以是
    True

用户是输入工作簿的现有名称,还是工作簿将另存为新名称?
Set WB=Workbooks(FilePath)
正在该位置查找已打开的工作簿。保存所述工作簿是否意味着创建新工作簿并保存?您必须先保存它,然后才能使用新的
文件路径创建对它的引用。请详细描述您的要求。我需要用户设置工作簿的名称,工作簿将按此方式保存
Sub CreateEmptyWorkbook()
    
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim workbookName As String
    Dim filePath As String
    workbookName = "test"
    filePath = GetDesktopPath & workbookName & ".xlsx"
    
    Set wb = Workbooks.Add
    wb.SaveAs filePath
    wb.Close False

End Sub

Public Function GetDesktopPath() As String
    GetDesktopPath = CreateObject("WScript.Shell").specialfolders("Desktop") & "\"
End Function