【问题标题】:Obtain address of just opened excel file via VBA通过VBA获取刚刚打开的excel文件的地址
【发布时间】:2016-10-31 22:12:17
【问题描述】:

我创建了一个简单的空 excel 文件并在工作簿上编写了一个简单的宏:

Private Sub Workbook_NewSheet(ByVal Sh As Object)
     MsgBox ThisWorkbook.Path
End Sub

打开文件并在 excel 文件中插入新工作表后,msgBox 什么也不显示。但保存文件后,MsgBox 显示正确的地址。这是为什么?!文件刚打开后如何获取文件地址?

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    这是因为新创建的工作簿还没有路径!

    一旦你保存它,它就会有一个你可以得到的真实路径

    您可以按如下方式更改您的子:

    Private Sub Workbook_NewSheet(ByVal Sh As Object)
        If ThisWorkbook.Path = "" Then '<--| if the workbook doesn't have path, yet
            With Application.FileDialog(msoFileDialogSaveAs) '<--| have the user choose a path and a name
                .Title = "Select Folder and name"
                .InitialFileName = "C:\"
                If .Show = 0 Then Exit Sub '<--| if the user canceled the dialog box then exit sub
                ThisWorkbook.SaveAs .SelectedItems(1), xlOpenXMLWorkbookMacroEnabled '<--| otherwise save the workbook to the specified path as a macro enabled excel file
            End With
        End If
        MsgBox ThisWorkbook.Path '<--| finally show the workbook path!
    End Sub
    

    【讨论】:

      猜你喜欢
      • 2015-04-02
      • 1970-01-01
      • 1970-01-01
      • 2017-06-12
      • 1970-01-01
      • 2013-09-04
      • 2021-04-09
      • 2017-12-19
      • 1970-01-01
      相关资源
      最近更新 更多