我正在尝试为以特定方式合并.pptx文件和.xlsx文件的宏编写VBA代码。我已经弄清楚了如何编码合并部分。但是,我有一个包含数百个需要合并的文件的目录,就目前而言,我必须使用文件对话框选择每个.xls文件和.pptx文件。我想通过编写代码来扫描整个目录中的文件来加快整个过程,该代码是我在文件对话框中选择的,然后返回匹配的.xls和.pptx文件的路径,然后合并每个匹配项。 匹配文件的名称使用以下语法类似: XLS文件:123ABC456_sheets_011.xlsx PPTX文件:123ABC456_slides_011.pptx 因此,为了进行比较,只需比较前9位数字即可。
我试图编写一个代码,该字符串创建具有特定目录中所有文件路径的字符串数组,但是由于我对VBA经验不足,所以我不知道如何查看数组充满所有文件名。在这一点上我被困住了。我想最好是创建两个字符串数组,一个创建一个.xlsx文件,另一个创建一个.pptx文件,然后以某种方式将它们相互比较,但是我不知道该如何解决。 在下面,您可以看到我到目前为止所拥有的。如果有人能够帮助我,我将感到非常高兴!
Sub IdentifyFiles()
Dim selectedPATH As String
Dim XLSArray As Variant
Dim i As Integer
Dim oFile As Object
Dim oFSO As Object
Dim oFolder As Object
Dim oFiles As Object
'Dialog to choose the folder
With Application.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
.Title = "Please choose folder"
If .Show = -1 Then
'ok click
selectedPATH = .SelectedItems(1)
Else
'cancel click
End If
End With
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.Getfolder(selectedPATH)
Set oFiles = oFolder.Files
If oFiles.Count = 0 Then MsgBox "no contents in chosen folder"
ReDim XLSArray(1 To oFiles.Count)
i = 1
For Each oFile In oFiles
XLSArray(i) = oFile.Name
i = i + 1
Next
End Sub