明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2748|回复: 19

[求助][VBA] 请各位大虾改错!!!

  [复制链接]
发表于 2004-4-15 13:21:00 | 显示全部楼层 |阅读模式
Private Sub CommandButton1_Click() On Error GoTo err
For i = 1 To 11 Step 1
slbl(i) = Val(TextBox1(i).Text)
Next i
slja1 = Int((slbl(1) / slbl(2) * 1000) + 0.5) / 1000
slxa1 = Str(slja1)
sljd0 = Int((Sqr(slja1 * 4 / 3.1415926)) * 1000 + 0.5) / 1000
slxd0 = Str(sljd0)
sljh2 = Int((3.6 * slbl(3) * slbl(4)) * 1000 + 0.5) / 1000
slxh2 = Str(sljh2)
sljh3 = Int((slbl(1) / (slbl(5) * 3.1415926 * slbl(6))) * 1000 + 0.5) / 1000
slxh3 = Str(sljh3)
slja2 = Int((slbl(1) / slbl(3)) * 1000 + 0.5) / 1000
slxa2 = Str(slja2)
slja = Int((slja1 + slja2) * 1000 + 0.5) / 1000
slxa = Str(slja)
sljd = Int((Str(4 * slja / 3.01415926)) * 1000 + 0.5) / 1000
slxd = Str(sljd)
sljv1 = Int((3.1415926 * slbl(9) * (slbl(7) * slbl(7) + slbl(7) * slbl(8) + slbl(8) * slbl(8)) / 3) * 1000 + 0.5) / 1000
slxv1 = Str(sljv1)
sljh = Int((slbl(10) + sljh2 + sljh3 + slbl(11) + slbl(9)) * 1000 + 0.5) / 1000
slxh = Str(sljh)
Label29.Caption = slxa1: Label30.Caption = slxd0: Label31.Caption = slxh2: Label53.Caption = slxh3
Label55.Caption = slxa2: Label54.Caption = slxa: Label56.Caption = slxd: Label58.Caption = slxv1
Label57.Caption = slxh
Exit Sub
err:
magbox ("你所输入的数据中有违法数据,请检查!")
Exit Sub
End Sub 请教各位为什么提示我“slbl(i) = Val(TextBox1(i).Text)”子过程或函数未定义~~?
发表于 2004-4-15 14:04:00 | 显示全部楼层
TextBox1(i).Text,在VBA中没有控件数组,因而这种用法是错误的,应该是TextBox1.Text、TextBox2.Text、...、TextBox11.Text。
发表于 2004-4-15 18:14:00 | 显示全部楼层
本帖最后由 作者 于 2004-4-15 19:56:07 编辑

要写类似VB控件数组的写法可以用:
  1. ‘该示例在立即窗口打印TextBox1~TextBoxn的文本值
复制代码
  1. For i = 1 To n
  2. Debug.Print Controls("TextBox" & Trim(Str(i))).Text
  3. Next i
复制代码
的形式
 楼主| 发表于 2004-4-15 21:46:00 | 显示全部楼层
我用


slbl(1)=textbox1.text:slbl(2)=textbox2.text:、、、、、、slbl(11)=textbox11.text


好像还是不行


再请问楼上是不是可以写成这样“slbl(Str(i)) = TextBox(Str(i)).Text”
发表于 2004-4-15 21:57:00 | 显示全部楼层
在VBA中没有控件数组!!!!!


我引用的窗体的控件集合
发表于 2004-4-15 22:02:00 | 显示全部楼层
可以用


  1. For i = 1 To 11

  2. slbl(i)=Controls("TextBox" & Trim(Str(i))).Text

  3. Next i
复制代码




另外,你的slbl数组定义了么?
 楼主| 发表于 2004-4-16 08:22:00 | 显示全部楼层
我用“option base 1:dim slbl(1 to 11) as long"dim i as integer”定义的,这样行吗?
 楼主| 发表于 2004-4-16 09:29:00 | 显示全部楼层
我都改过来啦,但是显示“你所输入的数据中有违法数据,请检查!”不知道是不是给slbl(i)赋值的类型不对?
发表于 2004-4-16 12:44:00 | 显示全部楼层
Val(Controls("TextBox" & Trim(Str(i))).Text)


应该可以吧
 楼主| 发表于 2004-4-17 09:39:00 | 显示全部楼层
我上传过来,帮帮看看行吗?


多谢啦!!!

本帖子中包含更多资源

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

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-28 07:41 , Processed in 0.181725 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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