gpt4 book ai didi

excel - 将 FSO 设置为 FileSystemObject 与 Scripting.FileSystemObject

转载 作者:行者123 更新时间:2023-12-04 19:52:59 28 4
gpt4 key购买 nike

我刚刚经历过这样的时刻之一,你走出杂草,检查你的代码并问自己“我为什么要那样做?”

我有一个脚本,它使用 FileSystemObject 创建一个包含多个子文件夹和文件的文件夹。一切正常,但我想我一直在改变我设置 fso 变量的方式。

我的项目使用了 Microsoft Scripting Runtime Library 引用,这样我就可以使用早期绑定(bind)(尽管我发现了几个 Set fso = CreateObject("Scripting.FileSystemObject"),这对于这个项目来说很愚蠢)。也许是因为我的很多代码都基于在线示例,但我一直以两种方式之一设置这些 fso 变量:

Set FSo = New FileSystemObject

Set FSo = New Scripting.FileSystemObject

它们之间有什么区别?我使用哪种重要,还是仅在某些情况下使用?

最佳答案

它们之间的区别在于后者消除了 FileSystemObject 属于 Scripting 而不是其他东西的歧义。

如果您在该工作簿中有自己的名为 FileSystemObject 的类,则需要后者来指定您正在创建 Scripting.FileSystemObject 而不是 Yourworkbook。文件系统对象

同样,如果您引用了一些其他外部库,该库也具有名为 FileSystemObject 的类,它也可以解决这种歧义。这就是为什么在“添加引用”对话框中有向上/向下箭头的原因 - 它们决定在名称冲突的情况下哪个库获胜并且编码器没有明确消除歧义。

VBA 中需要消除歧义的常见情况是同时使用 Word 和 Excel 对象模型。两者都有一个名为 Range 的类,您通常需要指定这次是要 Word.Range 还是 Excel.Range

如果您没有任何此类冲突的名称,这对您来说没有任何区别,除了可能让 future 的读者更容易记忆起 FileSystemObject 中的那个东西>脚本

关于excel - 将 FSO 设置为 FileSystemObject 与 Scripting.FileSystemObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69527054/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com