在Excel的VBA里如何定义公共变量?

以下这部份变量代码,我把它放在程序里面执行是正确的,但其它程序又不能使用它,我把它放在公共宣告那里,回到Excel执行时出现编译错误(编译错误显示为:不正确的外部程序),... 以下这部份变量代码,我把它放在程序里面执行是正确的,但其它程序又不能使用它,我把它放在公共宣告那里,回到Excel执行时出现编译错误(编译错误显示为: 不正确的外部程序),如何才能使所有程序都能正常使用它呢?请大师指教,谢谢!

Dim Fer As String
Dim Axal, Axaw, Axsl, Axsw, Aoal, Aoaw, Aoql, Aoqw, r701, r700, Yer, Zer As Double
If Zer > r700 And (Fer = "L" Or Fer = "l") Then
r701 = Zer
ElseIf Yer > r700 And (Fer = "W" Or Fer = "w") Then
r701 = Yer
Else
r701 = r700
End If
Axql = Int((Axsl + Axsw + Aoal) / Aoaw * Aoql - Aoqw)
Axqw = Int((Axsl + Axsw) * (Aoal - Aoaw) / Aoql)
展开
 我来答
lyhx5232
2010-05-17 · TA获得超过473个赞
知道小有建树答主
回答量:557
采纳率:0%
帮助的人:554万
展开全部
你把声明语句以外的代码放在sub ...end sub外面当然会"编译错误: 不正确的外部程序"了

可以先写一个公共过程,public sub 过程名...end sub

例:
public sub abc
Dim Fer As String
Dim Axal, Axaw, Axsl, Axsw, Aoal, Aoaw, Aoql, Aoqw, r701, r700, Yer, Zer As Double
If Zer > r700 And (Fer = "L" Or Fer = "l") Then
r701 = Zer
ElseIf Yer > r700 And (Fer = "W" Or Fer = "w") Then
r701 = Yer
Else
r701 = r700
End If
Axql = Int((Axsl + Axsw + Aoal) / Aoaw * Aoql - Aoqw)
Axqw = Int((Axsl + Axsw) * (Aoal - Aoaw) / Aoql)
end sub

然后在工程内的其它过程或函数中通过过程名调用以上过程
例:
sub aaa
代码段
abc
代码段
end sub
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式