ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
12
返回列表 发新帖
楼主: excelkill

[求助] (已解决)我又来了,关于个提取同目录下文件夹内图片文件名称的问题

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-2-5 09:07 | 显示全部楼层
wanghan519 发表于 2024-2-5 04:10
其实,识别图片里的标题再重命名也行,用的是论坛大佬分享的接口

你好老师:能麻烦解析一下这个如何使用吗?我刚才测试过运行bat文件后,dos窗口显示后,没有结果啊

TA的精华主题

TA的得分主题

发表于 2024-2-5 09:15 来自手机 | 显示全部楼层
excelkill 发表于 2024-2-5 09:07
你好老师:能麻烦解析一下这个如何使用吗?我刚才测试过运行bat文件后,dos窗口显示后,没有结果啊

给两个例子图片吧,还有说明要怎样命名

呃,上面的附件只是说,可以从图片里的文字获取表名,后面重命名图片,整理成表没写

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-2-5 11:38 | 显示全部楼层
ykcbf1100 发表于 2024-2-4 22:16
用正则提取文件名
附件供参考。。。

ykcbf1100老师:测试中发现个新问题,就是编号栏有多个重复编号问题,现在报错了,多个重复编号不是错误信息,就是这个人有多条记录,现在能不能加个判断,只要是重复的取最上面的信息,或者采取其他办法,同一编号的姓名肯定也是一样的,麻烦老师帮助修改一下

TA的精华主题

TA的得分主题

发表于 2024-5-21 22:09 | 显示全部楼层
关键字:unique+recurse,也许不是最优解.
image.jpg

limonet.zip

38.36 KB, 下载次数: 2

TA的精华主题

TA的得分主题

发表于 2024-5-21 22:10 | 显示全部楼层
Sub limonet()
    Dim Arr As Variant, S$, StrT$, Brr() As Variant, Crr As Variant, i%, j%
    Arr = Range("D2:D" & Range("D" & Rows.Count).End(xlUp).Row)
    ReDim Brr(1 To UBound(Arr), 1 To 3)
    Crr = Array("审批表", "制度|协议|规定", "工资表|工资凭单|凭证")
    S = CreateObject("wscript.shell").exec("PowerShell $FormatEnumerationLimit=-1;get-childitem " & ThisWorkbook.Path _
        & "\名单 -recurse -file | Select  @{Name='Name';Expression={$_.name -Replace '[^一-龥]',''}},@{Name='Directory';Expression={$_.Directory -Replace '.*\\',''}} " _
        & "| Get-Unique -AsString | Group  directory |select name, @{Name='Group';Expression={$_.Group -Replace '[^一-龥]',''}}").stdout.readall
    With CreateObject("vbscript.regexp")
        For i = 1 To UBound(Arr)
            .Pattern = Arr(i, 1) & ".*?}": .Global = True
            StrT = .Execute(S)(0)
            For j = 1 To 3
                .Pattern = Crr(j - 1)
                If j - 1 Then
                    For Each ms In .Execute(StrT)
                        Brr(i, j) = Brr(i, j) & "," & ms
                    Next ms
                    Brr(i, j) = Mid(Brr(i, j), 2)
                Else
                    If .test(StrT) Then
                        Brr(i, j) = "有"
                    Else
                        Brr(i, j) = "无"
                    End If
                End If
            Next j
        Next i
    End With
    Range("h2").Resize(i - 1, j - 1) = Brr
End Sub

TA的精华主题

TA的得分主题

发表于 2024-5-21 22:25 | 显示全部楼层
其实,powershell是获得这个数据
image.png
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-6-15 01:06 , Processed in 0.041240 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表