gpt4 book ai didi

vba - 如何标准化范围内列出的文件名

转载 作者:行者123 更新时间:2023-12-01 18:41:27 24 4
gpt4 key购买 nike

我在电子表格中有一个“Smith, J. 010112.pdf”形式的文件名列表。但是,它们采用不同的格式:“010112.pdf”、“01.01.12.pdf”和“1.01.2012.pdf”。我怎样才能将它们更改为“010112.pdf”的一种格式?

最佳答案

我个人讨厌使用工作表函数可以工作的 VBA,因此我找到了一种使用工作表函数来实现此目的的方法。尽管您可以将所有内容都塞进一个单元格中,但我已将其分解为单独列中的许多独立步骤,以便您可以逐步了解它是如何工作的。

为简单起见,我假设您的文件名位于 A1

B1 =LEN(A1)
确定文件名的长度

C1 =SUBSTITUTE(A1,"","")
将空格替换为空

D1 =LEN(C1)
如果将空格替换为空,看看字符串有多长

E1 =B1-D1
确定有多少个空格

F1 =SUBSTITUTE(A1,"",CHAR(8),E1)
将最后一个空格替换为文件名中不能出现的特殊字符

G1 =SEARCH(CHAR(8), F1)
找到特殊字符。现在我们知道最后一个空格在哪里

H1 =LEFT(A1,G1-1)
剥掉最后一个空格之前的所有内容

I1 =MID(A1,G1+1,255)
撕掉最后一个空格之后的所有内容

J1 =FIND(".",I1)
找到第一个点

K1 =FIND(".",I1,J1+1)
找到第二个点

L1 =FIND(".",I1,K1+1)
找到第三个点

M1 =MID(I1,1,J1-1)
找到第一个数字

N1 =MID(I1,J1+1,K1-J1-1)
找到第二个数字

O1 =MID(I1,K1+1,L1-K1-1)
找到第三个数字

P1 =TEXT(M1,"00")
填充第一个数字

Q1 =TEXT(N1,"00")
填充第二个数字

R1 =TEXT(O1,"00")
填充第三个数字

S1 =IF(ISERR(K1),M1,P1&Q1&R1)
将数字放在一起

T1 =H1&""&S1&".pdf"
把它们放在一起

这有点困惑,因为 Excel 已经 20 多年没有添加任何新的字符串操作函数了,所以本来应该很简单的事情(例如“查找最后一个空格”)需要严格的技巧。

关于vba - 如何标准化范围内列出的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11233674/

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