Shell.namespace不接受stringvariables,但接受string本身
我有一个代码,我要循环浏览文件夹中的文件,检查他们的内置或自定义文档属性(不打开它们),然后打开那些打开的文档。 要做到这一点,我使用Shell
并设置我使用Shell.Namespace
的文件夹。
问题是与Namespace
,我猜。 当我使用variables strSuborCesta
的path不起作用 。 当我将variablesstrSuborCesta
打印到即时窗口中并使用Shell.Namespace("....")
的打印string时 , 它确实起作用 。
通过它不工作我的意思是我得到:
运行时错误:91对象variables或未设置块
当我试图循环通过文件夹中的文件(这不是在那种情况下设置,所以我明白为什么发生错误,但不明白为什么它不接受一个stringvariables)
path在两个方面都是正确的。 但我需要它是一个variables ,而不是硬编码的string。
我在哪里错误?
有没有更好的办法,检查文件属性(如评论,标题,作者等),而无需打开Excel文件?
以下是目前正处于testing阶段的部分,这给我一个很难的时间。
str[name of variable]
variables是string数据types。 sFile, oShell, oDir are as Variants
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 'get a root path strPriecinokCesta = ThisWorkbook.Path 'path to this file strPriecinokCesta = Left(strPriecinokCesta, Len(strPriecinokCesta) - (Len(strPriecinokCesta) - InStrRev(strPriecinokCesta, "\"))) 'root path is one level above this file '-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 'input files are in a subfolder strSuborCesta = strPriecinokCesta & "Zdroje\" strSuborPripona = "Formular_BD_kotolna*.xls" 'name of a file with extension strSuborNazov = Dir(strSuborCesta & strSuborPripona) 'actual file name '-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 'get access to the file system Set oShell = CreateObject("Shell.Application") Set oDir = oShell.Namespace(strSuborCesta) '<----this will produce an error. In contrast to using a hard coded string. Why? For Each sFile In oDir.Items '<---- run time error 91 occurs on this line Debug.Print test & " : " & oDir.GetDetailsOf(sFile, 24) 'comments Next
variablesstrSuborNazov应该是一个变体
Dim strSuborNazov as variant oShell.Namespace(strSuborNazov)
https://msdn.microsoft.com/en-us/library/windows/desktop/bb774085(v=vs.85).aspx