使用vba将microsoft word文件复制粘贴到另一个文件夹中

使用vba将microsoft word文件复制粘贴到另一个文件夹中,vba,ms-word,Vba,Ms Word,我最近开始尝试使用vba来自动化我在Microsoft Word中的一些日常任务。我正在编写一个代码,允许用户选择目标文件夹以及要复制到所选目标文件夹中的文件(.doc) 以下代码运行时没有错误,但是这些文件不会被复制粘贴到目标文件夹中 我将非常感谢任何有助于解决这一问题的人 问候, 德里克 有几个问题 变量i没有在任何地方声明 您试图在对话框返回文件夹路径之前保存该路径 Sub copydocs() Dim i As Integer ' CHANGE: N

我最近开始尝试使用vba来自动化我在Microsoft Word中的一些日常任务。我正在编写一个代码,允许用户选择目标文件夹以及要复制到所选目标文件夹中的文件(.doc)

以下代码运行时没有错误,但是这些文件不会被复制粘贴到目标文件夹中

我将非常感谢任何有助于解决这一问题的人

问候,

德里克


有几个问题

变量i没有在任何地方声明

您试图在对话框返回文件夹路径之前保存该路径

Sub copydocs()
    Dim i As Integer                ' CHANGE: New declare.
    Dim fs As Object                ' CHANGE: Moved to top.
    Dim items As Long
    Dim file_path As Variant
    Dim folder_path As Variant

    'Ask user for input.
    items = InputBox("Give me some input")

    'Select Destination Folder
    With Application.FileDialog(msoFileDialogFolderPicker)
        ' CHANGE: Switched order of next two lines.
        .Show
        folder_path = .SelectedItems(1)
    End With

    ' Open the file dialog
    For i = 1 To items
        With Application.FileDialog(msoFileDialogFilePicker)
            .AllowMultiSelect = True
            .Show
            file_path = .SelectedItems(1)
        End With

        ' Copy paste
        Set fs = CreateObject("Scripting.FileSystemObject")
        fs.CopyFile file_path, folder_path
        Set fs = Nothing
    Next i
End Sub
Sub copydocs()
    Dim i As Integer                ' CHANGE: New declare.
    Dim fs As Object                ' CHANGE: Moved to top.
    Dim items As Long
    Dim file_path As Variant
    Dim folder_path As Variant

    'Ask user for input.
    items = InputBox("Give me some input")

    'Select Destination Folder
    With Application.FileDialog(msoFileDialogFolderPicker)
        ' CHANGE: Switched order of next two lines.
        .Show
        folder_path = .SelectedItems(1)
    End With

    ' Open the file dialog
    For i = 1 To items
        With Application.FileDialog(msoFileDialogFilePicker)
            .AllowMultiSelect = True
            .Show
            file_path = .SelectedItems(1)
        End With

        ' Copy paste
        Set fs = CreateObject("Scripting.FileSystemObject")
        fs.CopyFile file_path, folder_path
        Set fs = Nothing
    Next i
End Sub