我有一个嵌入了1000多个公式的文档,所以我提取了Environ(“用户名”),并从R1C1公式中提取“C:\Users[用户名]\OneDrive\”中所有公式的当前用户名,然后替换为新的Environ用户名。
我开发的公式是:
MID(B3,FIND(CHAR(1),SUBSTITUTE(B3,"\",CHAR(1),2))+1,FIND(CHAR(1),SUBSTITUTE(B3,"\",CHAR(1),3))-FIND(CHAR(1),SUBSTITUTE(B3,"\",CHAR(1),2))-1)
B3应为:
Worksheets(1).Range("L2").FormulaR1C1
但该公式只能在Excel中使用,而不能在VBA环境下使用,我尝试了求值方法,但没有成功
下面是代码:
Dim EnvUser As String
EnvUser = Environ("username")
Dim User As String
User = Worksheets(1).Range("L2").FormulaR1C1
User = Application.Evaluate("Mid(User, Find(CHAR(1), Substitute(User, " \ ", CHAR(1), 2)) + 1, Find(CHAR(1), Substitute(User, " \ ", CHAR(1), 3)) - Find(CHAR(1), Substitute(User, " \ ", CHAR(1), 2)) - 1)")
MsgBox User
2条答案
按热度按时间qkf9rpyu1#
使用正则表达式进行模式匹配和替换。
tcomlyy62#
更改OneDrive路径中的用户名