【问题标题】:Excel Vba Prompt user for folder then create worksheetExcel Vba 提示用户输入文件夹然后创建工作表
【发布时间】:2020-01-15 06:24:01
【问题描述】:

我正在尝试提示用户选择一个文件夹,然后如果选择了一个文件夹,则继续使用我的代码创建一个新工作表,但如果用户取消提示,则退出 sub 并且不要继续使用代码. 以下是我尝试过的。

当我按下取消时,它能够显示“请选择一个文件夹”,但是即使我选择一个文件夹,它也会显示“请选择一个文件夹”并停止。

谁能帮我解决这个问题,我一直在尝试各种方法,这是我能做的最好的。

Sub selectfolder_createnewsheet
Dim basePath As String
            basePath = BrowseForFolder("C:\")
            On Error GoTo errhandler
errhandler:
            MsgBox "Please Select a Folder"
            Exit Sub

            Dim wks As Worksheet
            Set wks = CreateOutputSheet(ActiveWorkbook)
End Sub

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    我通常这样做是为了如果用户按下取消,那也会被处理。

    Sub selectfolder_createnewsheet()
        Dim basePath As Variant
        basePath = BrowseForFolder("C:\")
    
        If basePath = False Then
            MsgBox "Nothing Selected. Aborting", vbInformation, "No Folder Selected"
            Exit Sub
        End If
    
        Dim wks As Worksheet
        Set wks = CreateOutputSheet(ActiveWorkbook)
    End Sub
    
    Function BrowseForFolder(Optional OpenAt As Variant) As Variant
        '
        '
        '
    End Function
    

    【讨论】:

    • 嗨,感谢您的回答,我尝试使用此Dim basePath As Variant basePath = BrowseForFolder("C:\") If basePath = False Then MsgBox "Nothing Selected. Aborting", vbInformation, "No Folder Selected" Exit Sub Else If basePath = True Then Dim wks As Worksheet Set wks = CreateOutputSheet(ActiveWorkbook),但不知何故无法继续创建工作表。
    • CreateOutputSheet() 有什么?
    • 我实际上是在尝试获取用户是否取消提示,然后退出子,但如果用户选择了一个文件夹,则继续创建工作表。对不起,如果我不清楚。 CreateOutputSheet() 只是创建一个工作表。但是之后我确实有更多的编码正在进行
    • 没关系,我已经删除了If basePath = True,现在它可以工作了,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-11
    • 1970-01-01
    • 2012-06-03
    相关资源
    最近更新 更多