2017-09-28 34 views
0

我有一个包含多个宏的模板,该模板将分布在多个设备上。MS Word宏 - 使用模板路径的系统变量

我有以下宏插入文本使用快速部分的单词。

Application.Templates(_ 


"C:\Users\user_name\AppData\Roaming\Microsoft\Word\STARTUP\template_name.dotm" _ 
    ).BuildingBlockEntries("alphabet").Insert Where:=Selection.Range, _ 
    RichText:=True 
ActiveDocument.TrackRevisions = Not ActiveDocument.TrackRevisions 

问题是,代码中包含模板的绝对路径,它在不同的机器上不会相同。

我试过用%Appdata%来代替,但是那里的宏什么都没做,没有错误信息。

有没有办法解决这个问题?

谢谢

+1

你怎么%APPDATA%你采用环保,(‘应用程序数据’) – peakpeak

回答

1

您可以使用环境变量在VBA代码来获取“用户名”,即

"C:\Users\" & LCase(Environ("UserName")) & "\AppData\Roaming\.." 

这里是一个链接显示其他变量(或者只是使用环境搜索“VBA变量(不含引号:??https://www.wiseowl.co.uk/blog/s387/environment-variable-vba.htm

+0

我是在路径中使用'%APPDATA%'直接,以为它会扩大 没”不了解'恩viron',谢谢! –