vba - FileSystem.FileCopy 与 objFSO.CopyFile

标签 vba excel

是否存在我应该使用以下选项的特定场景,或者它们可以互换吗?

选项1

...
FileSystem.FileCopy...
...

选项2

...    
Dim FSO As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.CopyFile
...

或者选项 1 在幕后只是选项 2?

最佳答案

选项 1 的 FileSystem.FileCopy 是用于复制文件的内置 VBA 函数,它是核心语言的一部分并且始终可用(您不需要 FileSystem 命名空间前缀)

选项2更复杂;它使用 COM 创建一个后期绑定(bind)的 FSO 实例,并调用一个与内置方法具有相同名称并执行相同操作的方法。

与选项 1 相比,使用选项 2 似乎没有什么好处,唯一的功能区别是 FSO 公开了一个参数来控制覆盖行为,您需要使用内置的 FileCopy 手动处理该行为>(足够琐碎)。

关于vba - FileSystem.FileCopy 与 objFSO.CopyFile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28045452/

相关文章:

excel - 如何处理 "Microsoft Excel is waiting for another application to complete an OLE action"

vba - 检查 VBA 中是否存在 ClearCase 版本

excel - 在工作表退出时清除数据透视表上的过滤器的 VBA 代码

vba - 使用 VBA 在 Excel 中选择形状

vba - 克隆集合

excel - 删除Excel中的每四行

VBA Excel-基于具有匹配数据的两列复制行

excel - 添加切片器缓存期间的奇怪错误

excel - Application.InputBox 的枚举

如果单元格值为数字,则 VBA 突出显示行