明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 826|回复: 4

AUTOCAD VBA问题if/赋值参数等

[复制链接]
发表于 2015-12-26 11:18:22 | 显示全部楼层 |阅读模式
本帖最后由 X_Ame甜心珍妮 于 2015-12-26 11:55 编辑

自学cad的vba...有很多问题求教!目前的题目是:用户可在窗体选择不同的参数(长l,宽w)这两个参数又控制图形其他参数(e,h,j等)然后根据这一组参数值绘图。现在绘图部分的代码已完成。就是在窗体设计和编程遇到了问题...真心求教!!!
1.←整体窗体,参数代码为
Public l As Integer, w As Integer      ‘不知道这样定义l和w是否为全局变量定义?
Private Sub W35_Click()
If W35.Value = True Then
    w = 35                                     ‘不知道这个w=35可不可以适用于其他的模块中?
    MsgBox "请选择参数L"
end if
end sub
Private Sub L75_click()
If L75.Value = True Then
  l = 75
End If
End Sub
2.点击绘图按钮,代码为
If w <> 0 And l <> 0 Then        ’判断l和w有没有选中...
  Call zz                                       ’zz是主视图的代码
Else
  MsgBox "请正确选择参数!"
End If
End Sub
【问题1】不知道怎么把窗体中赋值的w和l应用于其他模块
【问题2】我要写if w=35 and l=75 then e=xx,h=xx,j=xx end if 这一段要写在哪里?是写在窗体代码里吗?我如果把它写到了绘图代码(zz)里,那zz就没法运行。有个大神告诉我要用Sub zz(ByVal w,ByVal l)来做,可是我这样写就会报错。且我有好几副图(就是xx(), yy()等都在这个if w=35 and l=75 then e=xx,h=xx,j=xx end if,所以想把它设定成全局的...但是不知道该怎么搞...
【问题3】我第2点的代码对么?我就直接call zz了可以画出我要的zz图,那我想要画3幅图(xx,yy,zz)是否可以
call xx
call yy
call zz
这样?
【新问题4】话说再请问一下,我可以直接把if w=35 and l=75 then e=xx,h=xx,j=xx end if这一段写到窗体代码里面么?然后将所得到的w,l,e,h,j带到绘图模块里?
我的问题比较多希望好心人可以帮助我学习!!!!非常感谢!!!!!!!!!!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2015-12-26 11:35:28 | 显示全部楼层
【问题1】不知道怎么把窗体中赋值的w和l应用于其他模块
全局变量应该定义在Module中
【问题2】if w=35 and l=75 then e=xx,h=xx,j=xx end if
e,h j是全局变量吗?你可以新建一个sub,有使用zz之前,把需要数据(e h j)都安排好!
【问题3】
画多幅类似的图,最好用数组传参数!
for i=0 to ubound(xx)
call zz(xx(i))
next i
 楼主| 发表于 2015-12-26 11:43:37 | 显示全部楼层
zzyong00 发表于 2015-12-26 11:35
【问题1】不知道怎么把窗体中赋值的w和l应用于其他模块
全局变量应该定义在Module中
【问题2】if w=35 a ...

1.w,l,e,h,j都是全局变量,定义在module中是。。。?新建sub qq()然后把dim w,l,e,h,j等和
if w=35 and l=75 then e=xx,h=xx,j=xx end if都放在里面,然后在画图的时候直接call qq()这样行么?我之前试过但是不知道是不是call用的不对...运行不了...
2.关于数组传参数我会自行百度学习的!
非常感谢!!!
发表于 2015-12-26 11:58:26 | 显示全部楼层
如果都全局变量,就定义在module最上面,不要放在任何函数、过程里!
在qq()里,只是给w l e h j 赋值!
 楼主| 发表于 2015-12-26 16:41:52 | 显示全部楼层
zzyong00 发表于 2015-12-26 11:58
如果都全局变量,就定义在module最上面,不要放在任何函数、过程里!
在qq()里,只是给w l e h j 赋值!

多谢!!!!!!!问题已经解决啦!!!!!!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 09:53 , Processed in 0.168232 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表