VB 为什么文本框里显示不出数字?

要求在文本框里显示出1+1+2+3+5+8+……+n的结果,n分别为30,30,35,为什么我编的这个运行后文本框里只显示0?
Private Sub Command1_Click()Dim s As Long Text1.Text = sEnd Sub

Private Sub Option1_Click(Index As Integer)Dim a(1 To 30) As VariantDim n, i, s As Longa(1) = 1a(2) = 1s = 2For i = 3 To 30 a(i) = a(i - 2) + a(i - 1) s = s + a(i)Next iPrint sEnd Sub

Private Sub Option2_Click(Index As Integer)Dim a(1 To 33) As VariantDim n, i, s As Longa(1) = 1a(2) = 1s = 2For i = 3 To 33 a(i) = a(i - 2) + a(i - 1) s = s + a(i)Next iPrint sEnd Sub

Private Sub Option3_Click(Index As Integer)Dim a(1 To 35) As VariantDim n, i, s As Longa(1) = 1a(2) = 1s = 2For i = 3 To 35 a(i) = a(i - 2) + a(i - 1) s = s + a(i)Next iPrint sEnd Sub

第1个回答  2013-09-20
因为变量的作用域问题。你的s全部定义成了过程级的变量,当过程结束后,其值不再有意义,因此,你在command1_click中的代码:
Dim s As Long
Text1.Text = s
只是对s进行了定义,并没有对它赋值,所以其值为0。
只需将s定义成全局变量就好了。

另外,不得不说你的代码非常不好。类似这样的题目,一般定义一个函数,当单击Option时,只是对n赋值,然后在command1_click中,调用函数并传给参数n,再显示结果就好了。本回答被提问者采纳
第2个回答  2013-09-20

定义s为窗体变量,代码如下:

Option Explicit
    Dim s As Long
    
Private Sub Command1_Click()
    Text1.Text = s
End Sub
 
Private Sub Option1_Click()
    Dim a(1 To 30) As Long
    Dim n As Long, i As Long
    a(1) = 1
    a(2) = 1
    s = 2
    For i = 3 To 30
        a(i) = a(i - 2) + a(i - 1)
        s = s + a(i)
    Next i
    Print s
End Sub
 
Private Sub Option2_Click()
    Dim a(1 To 33) As Long
    Dim n As Long, i As Long
    a(1) = 1
    a(2) = 1
    s = 2
    For i = 3 To 33
        a(i) = a(i - 2) + a(i - 1)
        s = s + a(i)
    Next i
    Print s
End Sub
 
Private Sub Option3_Click()
    Dim a(1 To 35) As Long
    Dim n As Long, i As Long
    a(1) = 1
    a(2) = 1
    s = 2
    For i = 3 To 35
        a(i) = a(i - 2) + a(i - 1)
        s = s + a(i)
    Next i
    Print s
End Sub

VB 为什么文本框里显示不出数字?
因为变量的作用域问题。你的s全部定义成了过程级的变量,当过程结束后,其值不再有意义,因此,你在command1_click中的代码:Dim s As Long Text1.Text = s 只是对s进行了定义,并没有对它赋值,所以其值为0。只需将s定义成全局变量就好了。另外,不得不说你的代码非常不好。类似这样的题目,...

VB文本框不显示小数点
设置数据库表字段为文本 VAL(TEXT1.TEXT)

急急急!!!为什么vb在文本框只打一个汉字显示不出来
1、跟输入法有关,试试直接复制过来后显示啥 2、vb编译器故障,其中有关textbox的模块故障。不知重新安装vb能否正常,网页上下载的vb绿色版或简装版往往会出现问题。试试安装完整版

VB 用val(text1.text)不显示小数点后面的数,请问该如何解决
可能是你先把实数赋给了整型变量,然后再赋给文本框,比如说 Private Sub Command1_Click()Dim a As Integer a = Val(Text1.Text) \/ Val(Text2.Text)Text3.Text = a End Sub 这样就会丢失小数部分。

在vb的文本框中显示计算数据整数是零怎么不能显示出零来
是不得显示,要用format命令去设置格式

vb程序让输入在text中的文字显示的代码?
为了测试文本框的显示长度,可以使用另一个子程序`Command2_Click`。vb Private Sub Command2_Click()For i = 1 To 100 Text1.Text = Text1.Text & i Mod 10 Next '运行完后,前面出现过的零的数量加上最后一个可见的数字即为文本框显示字符数 End Sub 通过以上代码,可以实现输入在文本框...

vb文本框显示不变化,只能固定显示一个数
将断点设置在text1.text=b这行,监视程序是否能运行到这里,运行到这里时,监视b的值。调试程序就是这样:怀疑哪里有问题,就在哪里设置断点监视变量的值,或者插入debug.print,在立即窗口中查看变量值的变化。希望对你有所帮助

为什么我在VB里的文本框里粘贴文字查询就查不到,必许手动输入才可以查询...
EXCEL直接复制的文本里后面带了一个回车换行符。你是看不到的。但是确实存在,不然你用len() 函数看看直接输入的长度和EXCEL复制过来的同样文本的长度是否一样。 既然这样你查询的时候肯定就查不到数据了嘛。当然可以在查询的时候用 replac(textbox.text,vbcrlf,"")的方式来去掉回车换行符。这样就可以...

vb里面如何让text文本框显示按钮生成的数字
Private Sub Command1_Click()Randomize upperbound = 100 lowerbound = 1 Text1.Text = Int((upperbound - lowerbound + 1) * Rnd + lowerbound)End Sub 其中upperbound 是随机数的最大值,lowerbound 是随机数的最小值。可以自行设置 ...

在vb中,如何使文本框中只允许输入数字
vb编程中往往要限制文本框中只允许输入数字,防止获取文本框的内容时发生类型不匹配的错误。下面介绍实现限制文本框中只允许输入数字的方法。新建一个标准EXE程序。绘制界面,添加一个 Textbox控件,改名为 txbNumber。编写代码。在代码窗口中,添加 txbNumber_KeyPress事件。查ASCII码表,得到0的ASCII码是48...

相似回答