const string不允许变量作为用户名

时间:2015-02-20 12:44:43

标签: string excel-vba expression constants vba

当我使用它时,我得到一个常量表达式错误消息:

 Const FName As String = "c:\users\" & AGuser & _
                         "\documents\Appraiser_Genie\working\graphs.jpg"

任何建议都将不胜感激

1 个答案:

答案 0 :(得分:0)

正如其他人所指出的,并且正如编译器将告诉你的那样,Constant表达式不能包含变量信息,函数调用或在编译时无法评估的任何内容。所以,这不起作用:

Const FName As String = "c:\users\" & AGuser & "\documents\Appraiser_Genie\working\graphs.jpg"
Public AGuser as String
Sub foo()
    Aguser = Environ("username")
End Sub

这也不会:

Const FName As String = "c:\users\" & Environ("username") & "\documents\Appraiser_Genie\working\graphs.jpg"

我通常使用的方法是使用常量表达式和带Replace函数的本地/过程级变量。

Const FName As String = "c:\users\%username%\documents\Appraiser_Genie\working\graphs.jpg"

Sub foo()
Dim path As String
Dim AGUser as String
AGUser = Environ("username") 'Modify if you need to do something else...
path = Replace(FName, "%username%", AGUser)

MsgBox path

End Sub

或者,只需创建一个名为Function的{​​{1}},它返回字符串:

FName