相关疑难解决方法(0)

使用VBA获取扩展文件属性

尝试使用Excel VBA捕获磁盘上文件的所有文件属性,包括扩展属性.能够让它循环遍历文件并捕获基本属性(来自文件系统):

  • 文件路径
  • 文件名
  • 文件大小
  • 创建日期
  • 上次访问日期
  • 上次修改日期
  • 文件类型

还想捕获来自文件本身的扩展属性:

  • 作者
  • 关键词
  • 评论
  • 最后的作者
  • 类别
  • 学科

以及右键单击文件时可见的其他属性.

目标是创建文件服务器上所有文件的详细列表.

vba file-attributes fso

21
推荐指数
2
解决办法
10万
查看次数

用字符串变量替换字符串-错误91

背景

最近,我回答了一个问题,其中涉及在寻找一个文件的属性。最终,我提出的代码运行良好,但是有一点让我感到困惑。

问题

我想在两行中用一个变量替换一个字符串(在我看来是这样),更具体地说,请尝试以下操作:

Sub TestForSO()

Dim oDir As Object: Set oDir = CreateObject("Shell.Application").Namespace("C:\Users\...\")
Debug.Print oDir.GetDetailsOf(oDir.Items, 1)

End Sub
Run Code Online (Sandbox Code Playgroud)

将路径名替换为包含excel文件的目录,它应该可以正确返回属性值。

现在,当我尝试用变量替换完整路径时,以下内容会在debug.print行上引发“运行时错误91:对象变量或未设置块变量”:

Sub TestForSO()

Dim MainPath As String: MainPath = "C:\Users\...\"
Dim oDir As Object: Set oDir = CreateObject("Shell.Application").Namespace(MainPath)
Debug.Print oDir.GetDetailsOf(oDir.Items, 1)

End Sub
Run Code Online (Sandbox Code Playgroud)

对我而言,以下功能确实有用:

Sub TestForSO()

Dim MainPath As String: MainPath = "C:\Users\...\"
Dim oDir As Object: Set oDir = CreateObject("Shell.Application").Namespace(CStr(MainPath))
Debug.Print oDir.GetDetailsOf(oDir.Items, 1)

End Sub
Run Code Online (Sandbox Code Playgroud)

我不了解其本质上的区别,因为下面的代码将通过“ Watches”给出相同的结果:

Sub test()

Dim check1 As String, check2 As String …
Run Code Online (Sandbox Code Playgroud)

string excel vba namespaces

5
推荐指数
1
解决办法
127
查看次数

标签 统计

vba ×2

excel ×1

file-attributes ×1

fso ×1

namespaces ×1

string ×1