gpt4 book ai didi

VBA:通配符 * - 查找以数字结尾的文件 - 找到错误的文件

转载 作者:行者123 更新时间:2023-12-04 03:31:44 24 4
gpt4 key购买 nike

我是 Windows 用户。如果我将条件设置为“*1.jpg”,那么它会列出一个以“2”结尾的文件。 (如果我将条件设置为 *2.jpg 或 *3.jpg 那些工作正常)

Sub prob()

Dim x As String

x = Dir("C:\Users\" & Environ("UserName") & "\Downloads\folder\jpg\*" & "1" & ".jpg")

End Sub
有3个文件:
公司 34 31.jpg(从未列出)
company 34 32.jpg(如果条件为 1 或 2,则列出)
公司 34 33.jpg(如果条件 3,则列出)
还有其他几个例子,比如在其他文件夹中,它返回一个以 2 结尾的 jpg 文件,而条件是 *3.jpg。我在这找不到任何逻辑或模式。 Png 格式似乎只适用于条件“*1.png”,例如 pdf 格式似乎一切正常,没有错误。
没有隐藏文件,没有 1000 行代码有多个错误可能性。这只是一行。我想要一个以数字结尾的文件,其他文件将被返回。
对我来说很困惑的情况,感觉很糟糕,我什至无法找出一种模式,似乎完全是随机的。
2.
  • 参见第二个屏幕截图:似乎如果有一个 1 位数的结尾文件,并且有很多两位数的结尾文件,那么 1 位数的结尾文件优先。

  • enter image description here
    enter image description here

    最佳答案

    您可能是 Windows 出于兼容性原因生成的短文件名 (8.3) 的受害者。要检查这一点,请打开 CMD -window,切换到文件夹并发出命令 Dir /x *1.jpg - 这应该显示与 Dir 相同的结果在 VBA 中 - 可能包括您的文件 company 34 32.jpg ,它的短名称类似于 compan~1.jpg我能想到的最好的方法是将通配符更改为 *.jpg然后手动检查是否是 . 之前的最后一个字符是 1 .

    fileName = Dir("C:\Users\" & Environ("UserName") & "\Downloads\folder\jpg\*.jpg")
    Do While filename <> ""
    If Mid(filename, InStrRev(filename, ".") - 1, 1) = "1" Then
    Debug.Print filename
    End If
    filename = Dir
    Loop

    关于VBA:通配符 * - 查找以数字结尾的文件 - 找到错误的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66674420/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com