使用 Excel VBA 创建多个文件夹

使用 Excel VBA 创建多个文件夹
Sub Datasheet_MC_V1()
'
' Datasheet_MC_V1 Macro
'
Dim Filemane As String

n = Sheets("Loop").Range("C1").Value
For i = 2 To n + 1

    Sheets("Loop").Select
    Range("A" & i).Select
    Selection.Copy
    Sheets("For Looping").Select
    Range("A2").Select
    ActiveSheet.Paste
    Filename = Cells(2, 2).Value
    x = "Multicopter\"
    MkDir "C:\Users\Raam\Desktop\Excel marcro for datasheet\" & Filename
    Sheets("Before display").Select
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\Raam\Desktop\Excel marcro for datasheet\" & Filename & "\" & Filename & "_datasheet.pdf" _
        , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
        :=False, OpenAfterPublish:=False

    Next i


End Sub

我尝试将文件保存为 pdf 并保存在基于单元格值创建的文件夹中,但出现了错误。

代码如下时,我没有收到错误

   ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\Raam\Desktop\Excel marcro for datasheet\"  & Filename & "_datasheet.pdf" _

即当我尝试将其保存在创建的文件夹之外时。

答案1

Sub Datasheet_MC_V1()

' Datasheet_MC_V1 Macro

 Dim Filemane As String

n = Sheets("Loop").Range("C1").Value

For i = 2 To n + 1
Sheets("Loop").Select

Range("A" & i).Select
Selection.Copy
Sheets("For Looping").Select
Range("A2").Select
ActiveSheet.Paste

Filename = Cells(4, 2).Value
MkDir "C:\Users\Raam\Desktop\Excel marcro for datasheet\" & Filename
Sheets("Before display").Select

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    "C:\Users\Raam\Desktop\Excel marcro for datasheet\" & Filename & "\" & Filename & "_datasheet.pdf" _
    , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
    :=False, OpenAfterPublish:=False

Next i
End Sub

在单元格 (4,2) 中,我使用了公式 TRIM (2,2),这会删除导致错误的空白区域。Filename = Cells(4, 2).Value

因此,该程序创建一个具有文件名的目录(在特定的单元格中),并在创建的文件夹中以 filename_datasheet.pdf 的名称创建保存为 pdf 的文件。

相关内容