使用 Dir 按文件系统顺序从文件夹返回文件

2023-11-29

PixPath 是 jpg 文件夹的完整路径,我使用如下代码来处理每个 jpg。

fileName = Dir(PixPath)
Do Until fileName = ""
   If Right$(fileName, 4) = ".jpg" Then   
      fileName = Dir()

      <process this jpg>

   End If
Loop

这工作正常,除了文件按字母数字顺序返回,而不是按文件在文件夹中列出的顺序显示。有没有办法解决?


你不能这样做Dir.

另一种选择是:

  • Use FileSystemObject访问目录中的所有文件
  • 阅读所有.jpg文件放入数组X
  • Use Val来比较.jpgs 按值按数字升序排序
  • 最终的数组X包含排序后的文件

    Sub Test()
    Dim objFSO As Object
    Dim objFolder As Object
    Dim objFiles As Object
    Dim objFile As Object
    Dim X
    Dim lngFileCnt As Long
    Dim lngCnt As Long
    Dim i As Long
    Dim j As Long
    Dim strBuffer1 As String
    Dim strFolder As String
    
    Set objFSO = CreateObject("Scripting.fileSystemObject")
    strFolder = "C:\temp"
    Set objFolder = objFSO.getFolder(strFolder)
    Set objFiles = objFolder.Files
    lngFileCnt = objFiles.Count
    ReDim X(1 To lngFileCnt)
    
    'grab all jpg files        
    For Each objFile In objFiles
        If Right$(objFile.Name, 3) = "jpg" Then
            lngCnt = lngCnt + 1
            X(lngCnt) = objFile.Name
        End If
    Next
    
    'resize array to number of jpg files
    ReDim Preserve X(1 To lngCnt)
    
    'sort array by numeric value
    For i = 1 To lngCnt
        For j = (i + 1) To lngCnt
            If Val(X(i)) > Val(X(j)) Then
                strBuffer1 = X(j)
                X(j) = X(i)
                X(i) = strBuffer1
            End If
        Next
    Next
    MsgBox Join(X, ";")
    End Sub
    

    See here有关使用的更多信息FileSystemObject.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Dir 按文件系统顺序从文件夹返回文件 的相关文章

  • 使用 For Next 循环转换超过 500 行的日期格式

    我需要将 C 列中的日期 直到最后一行 从现有格式 24 01 2016 转换为 24 01 2016 结果必须采用日期格式 我当前的代码是 LastRow9 ws5 Cells Rows Count C End xlUp Row For
  • 如何使用单元格内的十六进制颜色值突出显示单元格?

    我有一个符号和匹配的十六进制颜色的电子表格 我想用单元格内的十六进制颜色填充单元格本身 或其旁边的单元格 我读过一些有关 条件格式 的内容 我认为这就是实现的方法 我怎样才能达到我想要的结果 条件格式无法实现所有颜色 假设 Row1 包含数
  • 查找使用连接的位置 Excel VBA

    我有大量需要优化的 Excel 2013 工作簿 每个工作簿都有多个工作表和多个数据连接 我正在寻找一种快速列出的方法 连接名称 连接字符串 使用连接的位置 工作表名称或范围很有用 我可以在连接对话框中看到所有这些信息 但无法以编程方式跟踪
  • 范围对象 - 为什么有时我不能使用工作表

    在这个线程中 Excel VBA 查找特定工作表上范围内的最大值 https stackoverflow com questions 31906571 excel vba find maximum value in range on spe
  • 在 Excel VBA 中使用 getElementsByClassName

    下面是我正在使用的代码 但我收到此错误 对象不支持此属性或方法 使用时getElementsByClassName 我正在使用的新 2 变量没有被填充 请帮助我 如果我做错了 请告诉我 Sub PopulateTasks Variable
  • 当用户在单元格中输入触发器时执行子例程

    Excel 中的示例数据 A B C 1 9 5 2 4 y 3 3 1 9 4 66 4 5 5 9 我想做的是当我进入Y在 B 列中 我想要 一些东西 执行 我不认为If Active Cell Y将在这里工作 因为当我进入Y然后按 E
  • VBA - 循环遍历表单上的控件并读取值

    我想循环遍历表单上的控件并读取值 但是 Value 和 Checked 属性不可用 我的问题是 当我循环访问控件 在本例中为复选框 时 如何读取它们的值 Dim Ctrl as Control For Each Ctrl In frmMai
  • Excel VBA 将工作表保存到具有唯一名称的多个文件夹

    感谢您的所有意见 下面的代码是收到的输入的最终结果 我已经对这些错误进行了评论 这些错误直接关系到保存到数组中定义的文件夹中的总体预期结果 Option Explicit Public EngName As String TeamNum A
  • 当单元格值和复选框更改时更改工作表

    我有一本包含多个工作表的工作簿 我有一个菜单页面 工作表 其中包含多个用户选择 输入新订单 更新订单等 每个选项旁边都有一个复选框 根据选中的复选框 单元格F4 F21改变自0 to 1并且 细胞B1更改我想要去的工作表的名称 我的主菜单工
  • Javascript 链接在 selenium excel vba 中没有响应

    我正在尝试做这样一行点击 javascript 链接的操作 FindElementById ctl00 ContentPlaceHolder1 LinkButton4 WaitDisplayed True 3000 Click 这条线没有任
  • 使用 Excel VBA 在 Outlook 电子邮件中使用 HTML 设置背景图像

    我正在尝试使用 Excel VBA 创建一封有关澳大利亚儿童癌症研究所的电子邮件 并带有背景图像 CCIALittleGirl jpg 然后 我希望在其上方有一个文本或文本框 最好是带有白色粗体文本 我可以在运行时填充这些文本 我可以在电子
  • 查询不可更新

    我正在尝试使用 BE SQL Server 2012 Express 中的记录更新本地 Access 2007 表 我的步骤在这里 SQL Server中存在带有4个参数的存储过程来获取所需的记录 Access VBA中有调用SP并进行临时
  • 通过 Whatsapp 从 Excel 发送图片

    我们如何通过 Whatsapp 从 Excel 发送图片 我找到了通过以下方式发送消息的vba代码https web whatsapp com https web whatsapp com Sub Test Dim text As Stri
  • 空格键在 Excel VBA 编辑器中的行尾不起作用

    我将 Personal xlsb 移至新笔记本电脑 但遇到了一个奇怪的问题 空格键在行尾不起作用 除非它是完全空的行 示例 1 不起作用的示例 不工作 示例 2 工作示例 会工作 当我按空格键时 文本选择指针没有移动 但位置指示器在原始位置
  • 带有 For 循环的多维数组 VBA

    尝试检查第一列中的值 即多维数组中的列 如果它匹配 则对另一列中与该行匹配的值进行排序 我认为我做错了 但这是我第一次搞乱多维数组 我是否需要在每个 for 循环中使用 UBound 和 LBound 来告诉它要查看哪一列 除了当前问题的答
  • 通过vba在每个空间范围之间添加求和公式

    我试图进行自动化 但我被困在这里 我需要在空间范围之间动态添加总和公式 我完全迷失了使用 VBA 添加公式的能力 任何人都可以帮助我 先感谢您 我假设您想要的是 如果单元格中有空白 您希望将所有其他元素相加并将结果放置在该空白中 可能有很多
  • 如何让 selenium 等待页面在 Selenium - Excel VBA 包装器中完全加载?

    Selenium Excel VBA 的包装器使用什么代码或函数 以便程序将等待页面完全加载然后执行其他命令 最新版本在执行所需操作之前隐式等待目标元素存在 例如 driver FindElementById Click 默认情况下会在抛出
  • Word VBA“项目不可见”

    有谁知道如何使模板在 Word 2007 中可见 我创建了一个模板 Experiments dotm 使用加载项添加它 但是当我尝试在其中创建模块时 收到错误消息 项目无法查看 关于 项目无法查看 问题的解释可以参见here http ms
  • Excel VBA 选择.替换,如果替换,则将文本放在替换行的 a 列中

    我有一些宏 例如 Columns F M Select Selection Replace What Replacement LookAt xlPart SearchOrder xlByRows MatchCase True SearchF
  • Python:使用 python 运行 Excel 宏

    我需要通过 python 运行 Excel 宏 但总是收到以下错误 result self oleobj InvokeTypes dispid LCID wFlags retType argTypes args pywintypes com

随机推荐

  • SQL:选择其他查询未选择的所有记录

    我正在寻找一个 SQL 查询来选择同一个表上的另一个查询未选择的所有记录 具体来说 我想选择具有特定字段 fieldA 重复项的所有记录 然后删除除其中一条记录之外的所有记录 因此 select 语句可能类似于以下内容 这不起作用 sele
  • javascript 调用函数 10 次,每次间隔 1 秒

    如何调用一个函数 10 次 for x 0 x lt 10 x callfunction 但每次通话之间间隔 1 秒 function callNTimes func num delay if num return func setTime
  • 如何在 SceneKit 中使用着色器添加透明度?

    我想从图像中获得透明效果 现在我只是用圆环进行测试 但着色器似乎不适用于 alpha 据我从这个帖子中了解到的 在 Scenekit 中使用混合函数 以及这个关于透明度的维基链接 http en wikibooks org wiki GLS
  • 如何将dojo工具包与rails 3.1 asset pipeline和coffeescript一起使用?

    我正在尝试在 Rails 3 1 应用程序上使用 dojo toolkit 作为 JS 框架 但我正在努力将 dojo require 结构与 sprockets require 和 Coffeescript 结合起来 看起来dojo需要磁
  • 如何使用 netbeans 在 java 中每次掷骰子后询问用户是否愿意继续游戏?

    我需要帮助解决这个问题 掷骰子游戏是用两个六面骰子进行的 玩游戏的用户将掷两个骰子 并生成两个介于 1 到 6 之间的随机数 两个数字的总和将用于决定下一步 如果总和为 2 3 或 12 则玩家获胜 如果总和是 7 或 11 那么他 她就输
  • 关闭 SKScene 返回 UIKit 菜单

    一旦我的 SpriteKit 游戏结束 我想回到我的UIKit MenuViewController 根据我到目前为止所学到的 使用协议 委托是最好的 选项 但我无法让它发挥作用 我知道该协议可能会高于类声明GameViewControll
  • 运行 Fiddler 作为 HTTP 到 HTTPS 反向代理

    我的机器上正在运行一项服务 该服务在 HTTPS 上发布 在 HTTP 上启动似乎有点复杂 某个远程计算机通过 HTTP 对我的计算机执行调用 这不受我的控制 我想对我的服务执行一些非性能关键的测试 看起来最简单的方法是使用有点像 HTTP
  • 在 Fortran 的 SYSTEM 子例程中使用变量

    如何在执行的命令中使用变量system子程序调用 例如 如果我想创建多个目录 例如test 1 1 test 1 2 依此类推 直到test 3 3那么我的代码应该是什么 我正在尝试以下代码 但似乎无法弄清楚在 部分要写什么 integer
  • Git 错误:无法提交配置文件

    我正在尝试将新的远程存储库 GitHub 添加到现有项目 但遇到了一个我以前从未见过且不理解的错误 git remote add github email protected me myrepo git error could not co
  • 标头和 Selenium Webdriver 2

    有没有办法在 Selenium WebDriver 测试中添加标头 与 Firefox 修改标头插件一样 我无法使用 HtmlUnitDriver 因为浏览器必须可见 WebDriver 不允许您使用任何基于浏览器的驱动程序更改或设置标头
  • 如何在设计时禁用子控件?

    我有自己的控制权 源自TCustomPanel 它有一个孩子 TEdit 在上面 type TMyControl class TCustomPanel private FEditor TEdit public constructor Cre
  • 从字典创建类实例属性?

    我正在从 CSV 导入并大致以以下格式获取数据 Field1 3000 Field2 6000 RandomField 5000 字段的名称是动态的 嗯 它们是动态的 因为可能不止 Field1 和 Field2 但我知道Field1 an
  • 如何将 EntityFramework、Repository、UnitOfWork 和 Automapper 结合到一个 MVC 应用程序中?

    首先我决定创建一个名为它的接口IDataAccessLayer并开始将所有内容放入其中 类似的方法GetUsers GetUser int id GetOrderByNumber int number DeleteOrder int Id
  • 为什么要在instanceOf之后进行强制转换?

    在下面的例子中 来自我的课程包 我们想要给Square实例c1其他对象的引用p1 但前提是这两个类型是兼容的 if p1 instanceof Square c1 Square p1 我在这里不明白的是我们首先检查p1确实是一个Square
  • 以编程方式设置 Mozilla Firefox 的默认主页?

    我知道如何设置 Google Chrome 和 Internet Explorer 的默认主页 但我在 Google 和 Stackoverflow 上搜索了如何使用 Mozilla Firefox 实现此目的的可能答案 但没有机会 我想知
  • 有没有相当于mySQL的IN的php?

    在 mySQL 中编写 select 语句时 如果我想提取列值等于多个值之一的记录 我可以这样说 SELECT FROM myTable WHERE myColumn IN 1 5 7 在 PHP 中使用 OR 完成类似任务的唯一方法是吗
  • 推送通知 - 捕捉它们?

    好吧 这就是交易 我的应用程序正在使用 iOS 通知 在应用程序委托中 如果应用程序位于 我会在 didReceiveRemoteNotification 中捕获它们前景如果应用程序在 我会在 didBecomeActive 中捕获它背景我
  • Android 模拟器看不到,如何移动它?

    我在笔记本电脑上使用了一个额外的显示器 并将 Android 模拟器移到了那里 即使不再连接显示器 它似乎也会记住该位置 有什么方法可以重置窗口的位置 使其再次可见吗 您可以使用此方法来移动 Windows 环境中屏幕外的任何窗口 首先通过
  • 每个 App Engine 应用程序允许使用 3,000 个文件(而不是 1,000 个),这是否正确?

    根据这篇维基百科文章 每个应用程序允许 3 000 个文件 但我在 Google Groups 上读到一个帖子 有人的 Java 应用程序在尝试上传超过 1 000 个文件时收到警告 他通过将一些文件捆绑在 jar 中来解决这个问题 哪个是
  • 使用 Dir 按文件系统顺序从文件夹返回文件

    PixPath 是 jpg 文件夹的完整路径 我使用如下代码来处理每个 jpg fileName Dir PixPath Do Until fileName If Right fileName 4 jpg Then fileName Dir