检查是目标目录存在,然后继续,如果不是然后创建它,然后进行VBA [英] Check is destination directory exist then proceed if not then create it and proceed afterwards VBA

查看:157
本文介绍了检查是目标目录存在,然后继续,如果不是然后创建它,然后进行VBA的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在其中一个工作表上有一个按钮,让用户继续他的任务,将他/她的模板作为文件夹中的单独的工作簿保存。

I have a button on one of the worksheets that lets user to continue with his task to save his/her template as a separate workbook in the folder.

这是我的代码

Private Sub ContinueButton_Click()
    Application.ScreenUpdating = 0
    Sheets(cmbSheet.Value).Visible = True
    Application.Goto Sheets(cmbSheet.Value).[a22], True
    Application.ScreenUpdating = 1
    Unload Me
End Sub

现在我需要的是检查该文件夹存在,如果文件夹不存在,我的用户应该可以创建它。

Now what I need is to check if that folder exist, in case if the folder does not exist my user should be able to create it.

我的代码创建此文件夹在这里,但如何连接这2一起工作我根本不知道,因为我相当新的VBA

My code to create this folder is here below, but how to connect this 2 functions together I simply have no idea, since I am fairly new to VBA

Sub CreateDirectory()
Dim sep As String
sep = Application.PathSeparator
'sets the workbook's path as the current directory
ChDir ThisWorkbook.Path
MsgBox "The current directory is:" & vbCrLf & CurDir
'makes new folder in current directory
MkDir CurDir & sep & Settings.Range("C45").Value
MsgBox "The archive directory named " & Settings.Range("C45").Value & " has been created. The path to your directory " & Settings.Range("C45").Value & " is below. " & vbCrLf & CurDir & sep & Settings.Range("C45").Value
End Sub

请帮助我


please help me

推荐答案

我将把您的代码模块化一点:

I am going to modularize your code a little bit:

在这里获取目录路径

Function getDirectoryPath()
    getDirectoryPath = ThisWorkbook.Path & Application.PathSeparator & Settings.Range("C45").Value
End Function

您可以创建目录使用此功能

You can create the directory using this function

Sub createDirectory(directoryPath)
    MkDir directoryPath
End Sub

您可以使用 Dir 函数检查目录是否存在/ p>

You can check if a directory exists or not using Dir function

Dir(directoryPath, vbDirectory) 'empty string means directoryPath doesn't exist

按钮上的最后一个功能点击:

The final function on button click:

Private Sub ContinueButton_Click()
    Application.ScreenUpdating = 0
    Sheets(cmbSheet.Value).Visible = True
    directoryPath = getDirectoryPath
    'Creating the directory only if it doesn't exist
    If Dir(directoryPath, vbDirectory) = "" Then
         createDirectory directoryPath
    End If
    Application.Goto Sheets(cmbSheet.Value).[a22], True
    Application.ScreenUpdating = 1
    Unload Me
End Sub

这篇关于检查是目标目录存在,然后继续,如果不是然后创建它,然后进行VBA的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆