复制以下代码到excel宏中执行

Sub 手动选择文件夹插入对象图标()
Dim objWord As Object
Dim objDoc As Object
Dim strPath As String
Dim strFolder As String
Dim i As Integer
Dim arrFiles() As String
Dim j As Integer
Dim temp As String
Dim startRow As Integer
'手动选择文件夹路径
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "请选择要插入的 Word 文档所在的文件夹"
.AllowMultiSelect = False
If .Show <> -1 Then Exit Sub
strFolder = .SelectedItems(1)
End With
'获取文件夹内的所有Word文档
strPath = Dir(strFolder & "\*.docx")
i = 0
Do While strPath <> ""
ReDim Preserve arrFiles(i)
arrFiles(i) = strPath
i = i + 1
strPath = Dir
Loop
'按类型排序
For i = 0 To UBound(arrFiles) - 1
For j = i + 1 To UBound(arrFiles)
If UCase(Right(arrFiles(i), 4)) > UCase(Right(arrFiles(j), 4)) Then
temp = arrFiles(i)
arrFiles(i) = arrFiles(j)
arrFiles(j) = temp
End If
Next j
Next i
'打开Word文档
Set objWord = CreateObject("Word.Application")
'从光标所在单元格开始插入对象图标
startRow = ActiveCell.Row
startRow = startRow + 1
For j = 0 To UBound(arrFiles)
Set objDoc = objWord.Documents.Open(strFolder & "\" & arrFiles(j))
ActiveSheet.OLEObjects.Add(Filename:=strFolder & "\" & arrFiles(j), Link:=False, DisplayAsIcon:=True, _
IconFileName:="C:\PROGRA~2\Microsoft Office\Office14\WINWORD.EXE", _
IconIndex:=0, IconLabel:=arrFiles(j)).Select
Cells(startRow, ActiveCell.Column).Select
startRow = startRow + 1 '插入下一行
objDoc.Close SaveChanges:=False
Next j
'关闭Word文档
objWord.Quit
End Sub
这段 VBA 代码用于在 Excel 中插入 Word 文档的对象图标。具体实现过程如下:
- 手动选择文件夹路径:使用 Application.FileDialog 对象打开文件夹选择对话框,让用户手动选择要插入的 Word 文档所在的文件夹。
- 获取文件夹内的所有 Word 文档:使用 Dir 函数获取指定文件夹内的所有 Word 文档,并将它们的文件名存储在一个字符串数组中。
- 按类型排序:使用冒泡排序算法,按照文件类型(即文件扩展名)对字符串数组进行排序,以便按照顺序插入 Word 文档的对象图标。
- 打开 Word 文档:使用 CreateObject 函数创建 Word 应用程序对象,并使用 Documents.Open 方法打开每个 Word 文档。
- 插入对象图标:使用 ActiveSheet.OLEObjects.Add 方法在 Excel 中插入 Word 文档的对象图标,并使用 Cells 属性指定插入对象图标的单元格。
- 关闭 Word 文档:使用 Close 方法关闭每个 Word 文档,并使用 Quit 方法关闭 Word 应用程序对象。
在这段代码中,还使用了一些 VBA 对象和方法,例如 Application.FileDialog 对象、Dir 函数、ReDim Preserve 语句、冒泡排序算法、CreateObject 函数、Documents.Open 方法、ActiveSheet.OLEObjects.Add 方法、Cells 属性、Close 方法和 Quit 方法等。