【问题标题】:Populating a listview form with files and thumbnails使用文件和缩略图填充列表视图表单
【发布时间】:2019-04-17 18:05:58
【问题描述】:

我正在尝试为 powerpoint 创建一个插件,让用户在下拉列表中选择一个目录,然后获取 powerpoint 幻灯片列表,其中包含以列表视图形式显示的缩略图。然后,用户应该能够选择缩略图并将幻灯片添加到他/她正在处理的当前演示文稿中。 (类似于直接从 power point 访问个人幻灯片库)。

我有填充列表框的通用代码。但是得到一个我不知道如何修复的 TypeError。

Private Sub CommandButton1_Click()

    Dim fs, f, f1, fc, s As String
    Dim folderspec As String

    folderspec = "U:\PowerPointFiles\"

    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder(folderspec)
    Set fc = f.SubFolders

    ComboBox1.Clear

    For Each f1 In fc
        ComboBox1.AddItem f1.Name

    Next f1

    'ComboBox1.Activate    --> doesnt' work

    'Application.SendKeys "^{F4}" --> doesnt' work

End Sub


Private Sub ComboBox1_Change()

    Dim fs, f, f1, MyFiles, s As String
    Dim MyFolder As String

    MyFolder = "U:\Methoden\power point trials\Addin Projekte\Slide Library Addin\" & ComboBox1

    MyFiles = Dir(MyFolder & "\*.pptx")

    ListView1.ListItems.Clear

    Do While MyFiles <> ""

        ListView1.ListItems.Add (MyFiles)  --> Type mismatch
        MyFiles = Dir

    Loop


End Sub

结果应该是 ListView 中的 .ppt 文件列表,包括链接。 从这里我需要创建代码来添加缩略图。

【问题讨论】:

  • 错误消息的确切文本是什么?它出现在哪一行?
  • ListView1.ListItems.Add (MyFiles) --> 类型不匹配

标签: vba powerpoint


【解决方案1】:

抱歉...错过了您已经标记了问题代码行这一事实。

我已经注释掉了您原始代码的几行并添加了一些细微的更改:

Private Sub CommandButton1_Click()

' You don't use all these variables, so no need to dim them here
'    Dim fs, f, f1, MyFiles, s As String
Dim MyFiles As String
    Dim MyFolder As String

    'MyFolder = "U:\Methoden\power point trials\Addin Projekte\Slide Library Addin\" & ComboBox1
' Substituted a folder that exists on my system and changed the filespec
' form *.PPTX to *.* to ensure some results at my end while testing.
MyFolder = "C:\Temp"

    MyFiles = Dir(MyFolder & "\*.*")

'    ListView1.ListItems.Clear
ListBox1.Clear
    Do While MyFiles <> ""

        'ListView1.ListItems.Add (MyFiles) '--> Type mismatch
ListBox1.AddItem (MyFiles)
        MyFiles = Dir

    Loop

End Sub

【讨论】:

  • 我知道我需要使用 ListView 而不是 ListBox 以便稍后添加缩略图。您可以调整代码以使用 ListView 而不是 ListBox 表单吗?这就是我卡住的地方。
【解决方案2】:

我找到了解决办法:

Private Sub ComboBox1_Change()

Dim strLoad As String
Dim lvwItem As ListItem
Dim MyFolder As String

ListView1.ListItems.Clear

MyFolder = "U:\Methoden\power point trials\Addin Projekte\Slide Library Addin\" & ComboBox1
strLoad = Dir(MyFolder & "\*.*")

Do While strLoad > vbNullString

   Set lvwItem = ListView1.ListItems.Add(, , strLoad)

   strLoad = Dir
Loop

End Sub

【讨论】:

猜你喜欢
  • 2014-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-20
  • 1970-01-01
  • 2011-02-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多