如何将更多文档添加到 Excel 文件中
How to add more documents into Excel file
我想将更多文件添加到我的 excel 文件中。如果 multiselect 为 false,则此宏有效,但是如果我尝试使用 multiselect = true,我会在行中收到一条错误消息:
if attachment = false then exit sub. An error message was type
mismatch.
Sub insertObject()
Dim attachment As Variant
'open more files, but not from specific folder
attachment = Application.GetOpenFilename(FileFilter:="All Files (*.*), *.*", MultiSelect:=True)
'if attachment is missing then end macro
If attachment = False Then Exit Sub
'my try with OLEobjects
ActiveSheet.OLEObjects.Add(Filename:=attachment, Link:=False, DisplayAsIcon:=True, IconFileName:="C:\WINDOWS\system32\packager.dll", IconIndex:=1, IconLabel:=attachment).Select
End Sub
GetOpenFilename 将多选设置为 true returns 如果选择了任何内容,则为一个数组。如果没有选择它 returns False。问题是,如果您选择了任何内容,"attachment = false" 会导致错误,因为您无法与这样的数组进行比较。这有点懒惰,但如果这总是一个 multi-select 对话框,你可以这样做
If IsArray(attachment) = False Then Exit Sub
因为如果选择了任何内容,它将始终是一个数组,如果没有选择,则不会。
还因为它 returns 一个数组,你需要有类似
的东西
For i = LBound(attachment) To UBound(attachment)
ActiveSheet.OLEObjects.Add Filename:=attachment(i), Link:=False, DisplayAsIcon:=True, IconFileName:="C:\WINDOWS\system32\packager.dll", IconIndex:=1, IconLabel:=attachment(i)
Next
添加您的所有文件。附件数组中的每个值都是一个完整的文件路径,因此您可能还想为 IconLabel 字段解析文件名。并且还为 OLEObject.Add 方法中的 "top" 或 "left" 字段设置了一些增量值,否则它们只会堆叠在 each-other 之上。
我想将更多文件添加到我的 excel 文件中。如果 multiselect 为 false,则此宏有效,但是如果我尝试使用 multiselect = true,我会在行中收到一条错误消息:
if attachment = false then exit sub. An error message was type mismatch.
Sub insertObject()
Dim attachment As Variant
'open more files, but not from specific folder
attachment = Application.GetOpenFilename(FileFilter:="All Files (*.*), *.*", MultiSelect:=True)
'if attachment is missing then end macro
If attachment = False Then Exit Sub
'my try with OLEobjects
ActiveSheet.OLEObjects.Add(Filename:=attachment, Link:=False, DisplayAsIcon:=True, IconFileName:="C:\WINDOWS\system32\packager.dll", IconIndex:=1, IconLabel:=attachment).Select
End Sub
GetOpenFilename 将多选设置为 true returns 如果选择了任何内容,则为一个数组。如果没有选择它 returns False。问题是,如果您选择了任何内容,"attachment = false" 会导致错误,因为您无法与这样的数组进行比较。这有点懒惰,但如果这总是一个 multi-select 对话框,你可以这样做
If IsArray(attachment) = False Then Exit Sub
因为如果选择了任何内容,它将始终是一个数组,如果没有选择,则不会。
还因为它 returns 一个数组,你需要有类似
的东西For i = LBound(attachment) To UBound(attachment)
ActiveSheet.OLEObjects.Add Filename:=attachment(i), Link:=False, DisplayAsIcon:=True, IconFileName:="C:\WINDOWS\system32\packager.dll", IconIndex:=1, IconLabel:=attachment(i)
Next
添加您的所有文件。附件数组中的每个值都是一个完整的文件路径,因此您可能还想为 IconLabel 字段解析文件名。并且还为 OLEObject.Add 方法中的 "top" 或 "left" 字段设置了一些增量值,否则它们只会堆叠在 each-other 之上。