Vba 定义文件夹编辑器更改为文件夹

Vba 定义文件夹编辑器更改为文件夹,vba,excel,directory,uppercase,lowercase,Vba,Excel,Directory,Uppercase,Lowercase,我在声明文件夹对象时遇到问题 我试图键入plik\u zip文件夹,但VBA编辑器(Excel 2013)将其转换为文件夹 Sub Submitt() Dim plik_zip As folder 更改引用无效。文件夹在您的案例中不是一种类型,而且VBA不区分大小写 也许你想做这样的事情: Set objFSO = CreateObject("Scripting.FileSystemObject") ' Get the folder object Set objFolder = ob

我在声明
文件夹
对象时遇到问题

我试图键入
plik\u zip
文件夹
,但VBA编辑器(Excel 2013)将其转换为
文件夹

Sub Submitt()
    Dim plik_zip As folder

更改引用无效。

文件夹在您的案例中不是一种类型,而且VBA不区分大小写

也许你想做这样的事情:

Set objFSO = CreateObject("Scripting.FileSystemObject")
' Get the folder object 
Set objFolder = objFSO.GetFolder("C:\Temp")
Dim folder As Object

如果在代码中的任何其他位置声明了名为
folder
的变量,VBE将执行此操作。您可以通过在空行上键入
Dim Folder
来“更正”(VBA不区分大小写)它使用的大小写,将光标移出该行,然后将其删除。它将使用您声明的最后一个变量的大小写,而不考虑范围


请注意,将对象声明为“folder”对编译器没有任何影响,但一般来说,出于这个原因,我避免使用类型名称作为变量。

在正常模式下,Excel中没有任何其他代码,您键入
Dim f as folder后,它将永远不会更改

现在添加一个新行,如下所示:

Set objFSO = CreateObject("Scripting.FileSystemObject")
' Get the folder object 
Set objFolder = objFSO.GetFolder("C:\Temp")
Dim folder As Object
然后,它将该行更改为:

Dim f As文件夹

现在,删除所有代码!现在再次添加此代码:
Dim f As FolDer
您将看到它更改为
Dim f As FolDer

这将重复进行,直到您关闭Excel


这是在VBE中缓存变量名的原因。

我创建了一个新文件,并手动重写了所有不带变量的文件夹,工作正常,THX:D