我在幻灯片中插入了listview控件。在下一步中,我尝试使用以下代码显示所有文件和文件夹+图标:
For Each fileName In IO.Directory.GetFiles("C:\")
ImageList21.Images.Add (Icon.ExtractAssociatedIcon(fileName))
ListView31.Items.Add (system.IO.Path.GetFileName(fileName)) , _
ImageList21.Images.Count - 1)
Next fileName
它在Visual Studio 2008上完美运行,但在VBA(使用VB6)上,我遇到了大量错误,例如:
对于每个Control变量必须是变量或对象
此外,这行代码变为红色并报告错误
ListView31.Items.Add (system.IO.Path.GetFileName(fileName)) , ImageList21.Images.Count - 1)
预期:声明结束
任何人都可以解释如何将代码转换为VB6 / VBA吗?
答案 0 :(得分:1)
尝试使用FileSystemObject。 On MSDN
这是VBA等同于您的VB.NET代码(使用FSO):
Dim fso, objFolder, objFile, strTemp
Set fso = CreateObject("Scripting.FileSystemObject")
Set objFolder = fso.GetFolder("c:\")
For Each objFile in objFolder.Files
'might need some other VBA call to extract an icon from these files
'ImageList21.Images.Add Icon.ExtractAssociatedIcon(objFile.Name)
ListView31.Items.Add objFile.Name, ImageList21.Images.Count - 1)
Next
答案 1 :(得分:-2)
看起来像VB.NET代码。 VBA文件处理例程非常简单,但您可以通过添加对VBA的引用来调用VBA中的FileSystemObject。
您需要添加对“Microsoft Scripting Runtime”的引用。你可以在VB编辑器中做到这一点我相信(已经有一段时间了)。
tgolisch的代码示例应该是一个很好的起点。只需确保您有参考集。