簡體   English   中英

excel vba 代碼檢查文件夾是否存在,如果不存在則創建文件夾

[英]excel vba code to check for a folder if it exists, if not create a folder

我是 excel vba 編碼的新手,並嘗試創建 ZBF57C906FA7D125566D0Z38D1Z 工作表范圍的 pdf。 我的代碼在 windows OS 中運行良好,但不知何故它在 Mac OS 中不起作用。 代碼如下:`

Sub GeneratePDF()
Dim wsA As Worksheet
Dim wbA As Workbook
Dim strTime As String
Dim strName As String
Dim strPath As String
Dim strFile As String
Dim strPathFile As String
Dim myFile As Variant
Dim VelleName As String
Dim SelectedRange As Range
With ThisWorkbook.Worksheets("modulo")
.Activate
.Range(.Cells(1, 1), .Cells(33, 10)).Select
Selection.Name = "SelectedRange"
End With


On Error GoTo errHandler

Set wbA = ActiveWorkbook
Set wsA = ActiveWorkbook.Worksheets("modulo")
strTime = Format(Now(), "ddmmyyyy\_hhmm")

'get active workbook folder, if saved
strPath = wbA.Path
If strPath = "" Then
  strPath = Application.DefaultFilePath
End If
strPath = strPath & "\"

VelleName = ThisWorkbook.Worksheets("database").Range("B" & Desiredrow) & "_" & ThisWorkbook.Worksheets("database").Range("C" & Desiredrow)

'replace spaces and periods in sheet name
strName = Replace(VelleName, " ", "_")
strName = Replace(strName, ".", "_")
strName = Replace(strName, "-", "_")
strName = Replace(strName, "/", "_")

'create default name for savng file
strFile = strName & "_" & strTime & ".pdf"

strPathFile = strName & "_" & strTime


' select folder for file
If Dir(strPath & Application.PathSeparator & "forme", vbDirectory) = "" Then '<== check if folder exists but its not detecting even though i had created a folder there.
    MkDir (ThisWorkbook.Path & Application.PathSeparator & "forme") '<== Create Folder and its not working for Mac OS.
End If
myFile = ThisWorkbook.Path & Application.PathSeparator & "forme" & Application.PathSeparator & strPathFile


'export to PDF if a folder was selected
If myFile <> "False" Then
With wsA.PageSetup
    .Orientation = xlPortrait
    .PrintArea = "SelectedRange"
    .Zoom = False
    .FitToPagesTall = 1
    .FitToPagesWide = 1
End With
    wsA.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:=myFile, _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
        
    
    MsgBox "Il file pdf è stato creato: " _
      & vbCrLf _
      & myFile
End If

exitHandler:
    Exit Sub
errHandler:
    MsgBox "Impossibile creare il file pdf"
    Resume exitHandler
End Sub

` 我已經嘗試在互聯網上進行大量搜索,但沒有找到任何專門教授 Mac OS 中 vba 編碼的資源。 此外,我只有一個鏈接https://macexcel.com/examples/filesandfolders/makefolder/但我不認為它會起作用,因為它應該只是一行命令,最大的問題是我現在沒有可用的 Mac OS。 那么有人可以測試我的代碼更改我的命令以使其與 Mac OS 兼容嗎

我曾經使用此代碼並添加以檢查文件是否存在

'Only Change code Here
Sub Verify()
    Dim myPath As String
    myPath = "C:\abc" '<--------This line
    If Not PathExist(myPath) Then MkDir (myPath)
End Sub

Private Function PathExist(path_ As String) As Boolean
    On Error GoTo ErrNotExist
    Call ChDir(path_)
   PathExist = True
   Exit Function
ErrNotExist:
    PathExist = False
End Function

Private Function FileExist(filePath_ As String) As Boolean
    FileExist = Len(Dir(filePath_)) <> 0
End Function

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM