
Private Sub Command1_Click()
a = Val(Text1)
s = Len(a)
Sum = 0
For i = 1 To s
Sum = Sum + a Mod 10
a = a \ 10
Next i
Text2 = Str(Sum)
End Sub
Private Sub Command2_Click()
Text1 = ""
Text1SetFocus
Text2 = ""
End Sub
Private Sub Command3_Click()
End
End Sub
这里你,或者是代码作者,有二个误解。
①texttext
的写法是错误的。默认控件名是text1、text2……自己可以修改成别的,但不能是text,这是系统保留字,不允许用做控件名。
②text1text=“sum”;sum
这个语句也是错误的。这是把print方法里面的分号用法错误用到字符串运算中了。正确的写法应该是text1text=“sum”+sum或者text1text=“sum”& sum
说完这些,才能说你的问题。
例如sum=5,text1text=“sum”& sum语句执行后则会在text1中出现sum=5
而在执行text1text=“sum”之后,text1里面只会出现sum
你好!
SUM=SUM+VAL(S)
就是把S这个字符型变量转化为数值后和变量SUM相加,所得的值重新赋值给变量SUM。
比如:
S="2"
SUM=3
SUM
=
SUM+VAL(S)
=
3+VAL("2")
=
3+2
=5
这时候SUM就变成5了
如果对你有帮助,望采纳。
Sub 两数相加()
Dim Num1 As Long
Dim Num2 As Long
Dim SumN As Long
Num1 = InputBox("请输入第一个数", "两数相加")
Num2 = InputBox("请输入第二个数", "两数相加")
SumN = Num1 + Num2
MsgBox "两数之和为:" & SumN, vbOKOnly, "两数相加"
End Sub
变量
在 Visual Basic 中执行应用程序期间,用变量临时存储数值。变量有名字(用来引用变量所包含的值的词)和数据类型(确定变量能够存储的数据的种类)。
可以把变量看作内存中存放未知值的所在处。例如,假定正在为水果铺编一个销售苹果的软件。在销售实际发生之前并不知道苹果的价格和销量。此时,可以设计两个变量来保存未知数— 将它们命名为 ApplePrice 和 ApplesSold。每次运行程序时,用户就这两个变量提供具体值。为了计算总的销售额,并且将结果显示在名叫 txtSales 的文本框中,代码应该是这样的:
txtSalestxt = ApplePrice ApplesSold
每次根据用户提供的数值,这个表达式返回不同的金额。由于有了变量,就可以设计一个算式,而不必事先知道实际的输入是多少。
在这个例子中,ApplePrice 的数据类型是货币,而 ApplesSold 的数据类型是整数。变量还可以表示许多其它数值,比如:文本数值、日期、各种数值类型,甚至对象也在此列。
存储和检索变量中的数据
用赋值语句进行计算,并将结果赋予变量:
ApplesSold = 10 '将值 10
'传给变量。
ApplesSold = ApplesSold + 1 '变量值
'增一。
注意,例子中的等号是赋值符,并不是等于 *** 作符;它将数值 (10) 赋予变量 (ApplesSold)。
声明变量
声明变量就是事先将变量通知程序。要用 Dim 语句声明变量,Dim 语句提供了变量名:
Dim variablename [As type]
在过程内部用 Dim 语句声明的变量,只有在该过程执行时才存在。过程一结束,该变量的值也就消失了。此外,过程中的变量值对过程来说是局部的— 也就是说,无法在一个过程中访问另一个过程中的变量。由于这些特点,在不同过程中就可使用相同的变量名,而不必担心有什么冲突和意想不到变故。
变量名:
必须以字母开头。
不能包含嵌入的句号或者嵌入的类型声明字符。
不得超过 255 个字符。
在同一个范围内必须是唯一的。范围就是可以引用变量的变化域— 一个过程、一个窗体等等。
由于 Dim 语句中的可选的 As type 子句,可以定义被声明变量的数据类型或对象类型。数据类型定义了变量所存储信息的类型。String、Integer 和 Currency 都是数据类型的例子。变量也可以包含来自 Visual Basic 或其它应用程序的对象。Object、Form1 和 TextBox 都是 Visual Basic 对象类型或类的实例。
详细信息 关于对象的更详细的信息,请参阅“用对象编程”和“用部件编程”。在本章后面的“数据类型”部分将详细讨论数据类型。
声明变量的其它方式:
不在过程内部,而在窗体、标准或类模块的声明段声明变量,这将使变量对模块中的所有过程有效。
用 Public 关键字声明变量,这将使变量在整个应用程序中有效。
用 Static 关键字声明一个局部变量,那么,即使过程结束,变量的值也仍然保留着。
隐式声明
在使用一个变量之前并不必先声明这个变量。 例如,可以书写这样一个函数,在其中就不必在使用变量 TempVal 之前先声明它:
Function SafeSqr (num)
TempVal = Abs (num)
SafeSqr = Sqr (TempVal)
End Function
Visual Basic 用这个名字自动创建一个变量,使用这个变量时,可以认为它就是显式声明的。虽然这种方法很方便,但是如果把变量名拼错了的话,会导致一个难以查找的错误。例如,假定写了这样一个函数:
Function SafeSqr (num)
TempVal = Abs (num)
SafeSqr = Sqr (TemVal)
End Function
乍看起来,这两段代码好象是一样的。但是因为在倒数第二行把 TempVal 变量名写错了,所以函数总是返回 0。当 Visual Basic 遇到新名字,它分辨不出这是意味着隐式声明了一个新变量呢,还是仅仅把一个现有变量名写错了,于是只好用这个名字再创建一个新变量。
显式声明
为了避免写错变量名引起的麻烦,可以规定,只要遇到一个未经明确声明就当成变量的名字,Visual Basic 都发出错误警告。
要显式声明变量,请
在类模块、窗体模块或标准模块的声明段中加入这个语句:
Option Explicit
—或—
在“工具”菜单中选取“选项”,单击“编辑器”选项卡,再复选“要求变量声明”选项。这样就在任何新模块中自动插入 Option Explicit 语句,但不会在已经建立起来的模块中自动插入;所以在工程内部,只能用手工方法向现有模块添加 Option Explicit。
如果对包含 SafeSqr 函数的窗体或标准模块执行该语句,那么 Visual Basic 将认定 TempVal 和 TemVal 都是未经声明变量,并为两者都发出错误信息。随后就可以显式声明 TempVal。
Function SafeSqr (num)
Dim TempVal
TempVal = Abs (num)
SafeSqr = Sqr (TemVal)
End Function
因为 Visual Basic 对拼错了的 TemVal 显示错误信息,所以能够立刻明白是什么问题。由于 Option Explicit 语句有助于抓住这些类型的错误,所以最好在所有代码中使用它。
注意 Option Explicit 语句的作用范围仅限于语句所在模块,所以,对每个需要 Visual Basic 强制显式变量声明的窗体模块、标准模块及类模块,必须将 Option Explicit 语句放在这些模块的声明段中。如果选择“要求变量声明”,Visual Basic 会在后续的窗体模块、标准模块及类模块中自动插入 Option Explicit,但是不会将它加入到现有代码中。必须在工程中通过手工将 Option Explicit 语句加到任何现有模块中。
sum是工作表函数,调用时前面须加 applicationworksheetfunction
就是说,需要使用 worksheetfunction 模块,
VB里面没有这部分模块,就不能使用了,可以自定义一个函数
可以用作变量名。虽然系统函数中包含sum函数,但使用时表达形式与变量名不同,可以区分开来。VB中不区分大小写,大小写不一样的也是同一个变量。在VB编程时,语句中出现的变量大小写形式会与在定义变量过程中所定义的大小写形式自动调整为相同。
Private Sub Command1_Click()
Label1Caption = FormatNumber(funsum(100), 8, vbTrue)
End Sub
Private Sub Command2_Click()
Dim sum As Single
subsum 100, sum
Label2Caption = FormatNumber(sum, 8, vbTrue)
End Sub
Private Function funsum(ByVal n As Integer) As Single
Dim i As Integer, t As Integer, sum As Single
t = 1
For i = 1 To n
sum = sum + (1 / i) t
t = -t
Next
funsum = sum
End Function
Private Sub subsum(ByVal n As Integer, ByRef subsumm As Single)
Dim i As Integer, t As Integer, sum As Single
t = 1
For i = 1 To n
sum = sum + (1 / i) t
t = -t
Next
subsumm = sum
End Sub
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)