首页 > 解决方案 > 如何知道分配给变量的类型?

问题描述

当我用sFolder(存储文件地址的字符串类型变量)替换输入的实际地址时,出现类型不匹配。当我输入地址时,代码运行良好。当我将地址存储到字符串类型变量时,我得到类型不匹配。我是一个完整的编码初学者,所以我确信这是一个简单的问题,但我一直在寻找没有成功的答案。

下面的sFolder变量是一个公共变量,在这个函数之外被声明为一个字符串。

Sub CheckFileTimes()

Dim StrFile As String
Dim StrCDate As Date
Dim fso As Object
Dim f As Object

'set up output file
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpentextFile(sFolder & "\TEST.xls", 2, True)

'open folder and loop through
StrFile = Dir(sFolder & "\*.3D*")
Do While Len(StrFile) > 0
Set objFile = fso.getfile(sFolder \ StrFile) ' THIS IS WHERE THE ERROR OCCURS
'get creation date
StrCDate = objFile.datecreated
'write to output file
f.writeLine StrFile & "," & StrCDate

'move to next file in folder
StrFile = Dir

Loop

f.Close
End Sub

标签: excelvba

解决方案


由于您正在构建一个包含文件名的字符串,因此您需要像这样格式化代码:

sFolder & "\" & StrFile

使用此代码,您将连接 3 个字符串,而不是进行除法。


推荐阅读