如何填充上次保存的用户和文件的上次保存日期

2024-05-08

我有下面的代码从文件夹中获取文件名。

Sub GetFileNames_Assessed_As_T2()
    Dim sPath As String, sFile As String
    Dim iRow As Long, iCol As Long
    Dim ws As Worksheet: Set ws = Sheet9
    'declare and set the worksheet you are working with, amend as required
    
    sPath = "Z:\NAME\T2\"
    'specify directory to use - must end in ""
    
    sFile = Dir(sPath)
    Do While sFile <> ""
        LastRow = ws.Cells(ws.Rows.Count, "I").End(xlUp).Row 'get last row on Column I
        Filename = Left(sFile, InStrRev(sFile, ".") - 1) 'remove extension from file
        Set FoundFile = ws.Range("I1:I" & LastRow).Find(what:=Filename, lookat:=xlWhole) 'search for existing filename
        If FoundFile Is Nothing Then ws.Cells(LastRow + 1, "I") = Filename 'if not found then add it
        sFile = Dir  ' Get next filename
    Loop
End Sub

我需要进行调整以获取以下内容并将其填充到电子表格中:

  • 文件最后更新者(O 列)
  • 文件上次更新日期(P 列)
  • 将文件超链接到电子表格(Q 列)

以下是通过 Dsofile.dll 访问扩展文档属性的示例。 32 位版本是here https://support.microsoft.com/en-gb/help/224351/the-dsofile-dll-files-lets-you-edit-office-document-properties-when-yo。我正在使用重写的 64 位替代方案罗伯特8w8 https://www.codeproject.com/tips/1118708/bit-application-can-not-use-dsofile。安装后,在我的情况下是 64 位版本,您可以转到“工具”>“参考”>“添加参考”DSO OLE Document Properties Reader 2.1。它允许访问已关闭文件的扩展属性。显然,如果信息不可用,则无法返回。

我在那里有一个可选的文件掩码测试,可以将其删除。

DSO 函数是我对一个很棒的子函数的重写,它列出了 xld 的更多属性.

Option Explicit
Public Sub GetLastestDateFile()
    Dim FileSys As Object, objFile As Object, myFolder As Object
    Const myDir As String = "C:\Users\User\Desktop\TestFolder" '< Pass in your folder path
    Set FileSys = CreateObject("Scripting.FileSystemObject")
    Set myFolder = FileSys.GetFolder(myDir)

    Dim fileName As String, lastRow As Long, arr(), counter As Long

    With ThisWorkbook.Worksheets("Sheet1") '<== Change to your sheet where writing info to 
        lastRow = .Cells(.Rows.Count, "P").End(xlUp).Row 'find the last row with data in P

        For Each objFile In myFolder.Files 'loop files in folder
            fileName = objFile.Path
            If FileSys.GetExtensionName(fileName) = "xlsx" Then 'check if .xlsx
                arr = GetExtendedProperties(fileName)
                 counter = counter + 1
                .Cells(lastRow + counter, "O") = arr(0) 'Last updated
                .Cells(lastRow + counter, "P") = arr(1) 'Last save date
                .Hyperlinks.Add Anchor:=.Cells(lastRow + counter, "Q"), Address:=objFile.Path '<== Add hyperlink                 
            End If
        Next objFile
    End With
End Sub

Public Function GetExtendedProperties(ByVal FileName As String) As Variant
    Dim fOpenReadOnly As Boolean, DSO As DSOFile.OleDocumentProperties
    Dim oSummProps As DSOFile.SummaryProperties, oCustProp As DSOFile.CustomProperty
    Dim outputArr(0 To 1)
    Set DSO = New DSOFile.OleDocumentProperties
    DSO.Open FileName, fOpenReadOnly, dsoOptionOpenReadOnlyIfNoWriteAccess

    Set oSummProps = DSO.SummaryProperties

    outputArr(0) = oSummProps.LastSavedBy
    outputArr(1) = oSummProps.DateLastSaved
    GetExtendedProperties = outputArr
End Function

Other:

  1. 超链接.Add 方法 https://learn.microsoft.com/en-us/office/vba/api/excel.hyperlinks.add
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何填充上次保存的用户和文件的上次保存日期 的相关文章

随机推荐

  • 您可以使用 Jekyll 的 _includes 文件夹中的子目录吗?

    我的计划是在 includes目录 包括 页脚 包括 英雄 includes cta etc 当我引用那个时 include footers footer1 html 我收到以下错误 Liquid Exception Included fi
  • 如何在 ASP.NET Core 中转换 AppSettings

    我被引导相信appsettings json及其环境对应项 开发 登台 生产 取代了 Web config 转换 这在开发环境中工作得很好 这些环境的变量存在于launchSettings json 但是 如果我使用发布功能 将发布配置为使
  • Adwhirl 的问题(Admob+Inmobi+..)

    使用 AdWhirl 我遇到了这些例外 我无法从我这边发现错误 任何人都可以建议这个 FATAL EXCEPTION main E AndroidRuntime 279 java lang NullPointerException E An
  • Google Apps 脚本:从云端硬盘下载文件(同一用户)

    我正在尝试编写一个 Google Apps 脚本来下载特定云端硬盘文件夹中的所有文件 可能是 csv 文件 我找到了 getDownloadUrl 方法 但我不知道该做什么do用它 我目前正在尝试以下代码 其中files是文件夹中的文件列表
  • IEnumerable.GetEnumerator() 和 IEnumerable.GetEnumerator()

    在 net框架中 有一个通用的IEnumerable
  • 在 Android 中使用 Facebook Achievement API

    我知道这可能看起来像一个通用问题 但找到有关该主题的信息似乎非常困难 因此 如果某个地方存在完整的示例 指南 源代码链接 我将不胜感激 我正在开发一款 Android 游戏 希望集成 Facebook 成就 我想要的只是在用户完成某个谜题时
  • Rails 4.0 expire_fragment/缓存过期不起作用

    我一直在尝试使用 Rails 的缓存功能 但我无法使某些缓存片段过期 尽管它们似乎已过期 使用 Rails 教程网站中指出的 Russian Doll Caching 我正在使用此配置 我使release controller rb 控制器
  • #DELETE 在 Access 中查看 SQL Server 表

    今天早上又出现了一个新问题 我的数据库驻留在 SQL Server 上 并使用 Access 作为前端 其中一个已经使用了至少 10 年的数据库今天突然停止工作 我发现这个问题影响了 2 个 可能更多 我没有检查所有 表 当我在访问中打开表
  • 如何使用 R / igraph 设置边缘颜色和顶点间距

    我是 R 新手 试图弄清楚如何为我有数据的系统制作社交网络地图 我已经设法从常见问题解答和教程中弄清楚我想做的大部分事情 但我被困在两件事上 如何使画布更大 图表间隔更大 现在已经太挤了 目前 边缘厚度是根据重量设置的 权重代表不同的状态
  • 如何查看哪个用户启动了 Docker 容器?

    我可以查看正在运行的容器的列表docker ps https docs docker com engine reference commandline ps or 同等地 https stackoverflow com q 45254677
  • J2me -Polish ---与创建和构建项目相关的问题

    我是 j2me polish 的初学者 我已经安装了 j2me polish2 1 4 按照下面链接中显示的步骤 http www j2mepolish org cms leftsection documentation installat
  • 如何抑制 C# 中方法调用的错误?

    我正在寻找一种 优雅 的方法来在调用方法时抑制异常 我认为下面的代码太冗长了 try CallToMethodThatMayFail 3 catch 是否有一些语法糖我可以用来说 我真的不在乎这个方法是否失败 我想调用该方法并继续执行 无论
  • 如何将正文中的数字替换为波斯数字?

    我想将 html 内容中的每个数字转换为波斯数字 而不会对页面元素产生其他影响 例如 div style color c2c2c2 text number 1 span text number 2 span div text number
  • 对“yylex()”的未定义引用

    我正在尝试使用 flex 和 bison 创建一种简单的脚本语言 现在 我只是想让计算器工作 但我无法编译它 当我运行这个 makefile 时 OBJECTS hug tab o hug yy o PROGRAM hug exe CPP
  • Spring data Jpa实体不受管理调用刷新时出现异常

    我有一个数据库代码 jar 我在不同的应用程序中使用它来访问数据库 我在用spring data jpa 我需要调用刷新来检查来自其他应用程序的数据库行的更改 这里我如何实现它 我的StudentRepository界面 public in
  • 本地主机:8080 是什么意思? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有什么区别本地主机 网络 vs 本地主机 8080 web TCP IP 连接始终与 IP 地址建立 您可以将 IP 地址视为某台计算机的
  • Tensorboard 在浏览器和 vscode 中不显示任何内容

    我运行我的代码并得到一个带有日志的 tfevent 文件 当我跑的时候 tensorboard inspect logdir Path find path grep tfevent 他们毫无问题地返回结果 在我的环境中 tensorboar
  • 如何将默认文本添加到 html 文本区域的开头?

    我正在建立一个个人的小型社交网络 作为设计的一部分 所有状态都应以不应更改的默认文本开始 类似于 嗨 我的名字是 然后用户完成其余的操作 有点像不会消失的 HTML5 占位符 实现这一目标的最佳方法是什么 请参考这个fiddle http
  • Oracle SQL - 将 oracle sql 中的 id 更新为按顺序排列

    我在 Oracle SQL 中有一个表 其 id 按递增顺序排列 但由于编辑原因 id 中存在间隙 例如id 目前类似于 22 23 24 32 33 44 etc 我想通过浏览表中的每一行并更新它们来修复这些差距 这样就不会有差距 最好的
  • 如何填充上次保存的用户和文件的上次保存日期

    我有下面的代码从文件夹中获取文件名 Sub GetFileNames Assessed As T2 Dim sPath As String sFile As String Dim iRow As Long iCol As Long Dim