0

你能给我一个建议吗?

我正在使用 Windows 并使用 MS 电源点,我想自动使用我的图片文件

他们被命名为

1_MOD_82.1542.bmp
2_MOD_102.8821.bmp
3_MOD_152.3541.bmp

等等..我想用它而不是打字

ActiveWindow.Selection.SlideRange.Shapes.AddPicture(Filename:="F:\somedir\1_MOD_82.1542"

所以我想要一些像这样的循环(但这段代码只是想法,不起作用)

for i:=0, i++,i<10 do
ActiveWindow.Selection.SlideRange.Shapes.AddPicture(Filename:="F:\somedir\%i*"

我想制作一个循环,它将按起始编号使用图像文件。

4

1 回答 1

0

添加一个内循环:

Set fso = CreateObject("Scripting.FileSystemObject")

For i = 0 To 9
  For Each f In fso.GetFolder("F:\somedir").Files
    If f.Type = "Bitmap-Image" Then
      If CInt(Left(f.Name, 1)) = i Then
        ActiveWindow.Selection.SlideRange.Shapes.AddPicture(f.Path)
      End If
    End If
  Next
Next

可以像这样添加检查以确保第一个字符是数字:

If f.Type = "Bitmap-Image" Then
  c = Left(f.Name, 1)
  If IsNumeric(c) Then
    If CInt(c) = i Then
      '...
    End If
  End If
End If

处理图像的另一个(更复杂的)选项是将它们枚举到断开连接的记录集中,然后过滤记录集。这样您就不必在每个循环周期中枚举 images 文件夹中的所有文件。

Set fso = CreateObject("Scripting.FileSystemObject")
Set rs  = CreateObject("ADOR.Recordset")
rs.Fields.Append "Name", 200, 80
rs.Fields.Append "Path", 200, 255
rs.Open

For Each f In fso.GetFolder("F:\somedir").Files
  If f.Type = "Bitmap-Image" Then
    rs.AddNew
    rs("Name").Value = f.Name
    rs("Path").Value = f.Path
    rs.Update
  End If
Next

For i = 0 To 9
  rs.Filter = "Name LIKE '" & i & "%'"
  rs.MoveFirst
  Do Until rs.EOF
    ActiveWindow.Selection.SlideRange.Shapes.AddPicture(rs("Path").Value)
    rs.MoveNext
  Loop
Next
于 2013-01-15T09:56:19.240 回答