VBA程序教学用例
【例1】求解一元二次方程Ax+Bx+C=0。
顺序结构的VBA程序:
SUB JFC1()
A = Sheets("解一元二次方程").Cells(1, 2)
B = Sheets("解一元二次方程").Cells(2, 2)
C = Sheets("解一元二次方程").Cells(3, 2)
X1=(-B+SQR(B^2-4*A*C))/2/A
X2=(-B-SQR(B^2-4*A*C))/2/A
DEBUG.PRINT “X1=”,X1
DEBUG.PRINT “X2=”,X2
END SUB
提示:先将三个系数A、B、C存放到表"解一元二次方程"的单元格B1:B3中,运行结果在立即窗口中(可用CTRL+G组合键打开立即窗口)。
带判断条件的VBA程序:
Sub JFC2()
A = Sheets("解一元二次方程").Cells(1, 2)
B = Sheets("解一元二次方程").Cells(2, 2)
C = Sheets("解一元二次方程").Cells(3, 2)
If B * B - 4 * A * C >= 0 Then
Sheets("解一元二次方程").Cells(4, 2) = (-B + Sqr(B ^ 2 - 4 * A * C)) / 2 / A
Sheets("解一元二次方程").Cells(5, 2) = (-B - Sqr(B ^ 2 - 4 * A * C)) / 2 / A
Else
Sheets("解一元二次方程").Cells(4, 2) = "此方程无实根"
Sheets("解一元二次方程").Cells(5, 2) = "此方程无实根"
End If
End Sub
提示:先将三个系数A、B、C存放到表"解一元二次方程"的单元格B1:B3中,运行结果在B4:B5中)。
【例2】给定成绩数据在表sheet2中,求最高分、最低分和平均分。
【例2】给定成绩数据在表sheet2中,求最高分、最低分和平均分。
(1)程序流程总图
(2)VBA程序
Sub CJTJ()
X = Sheets("成绩统计").Cells(2, 2)
MA = X
MI = X
P = 0
I = 2
Do While Sheets("成绩统计").Cells(I, 2) <> ""
X = Sheets("成绩统计").Cells(I, 2)
P = P + X
If X > MA Then MA = X
If X < MI Then MI = X
I = I + 1
Loop
P = P / (I - 2)
Sheets("成绩统计").Cells(I + 1, 1) = "最高分"
Sheets("成绩统计").Cells(I + 1, 2) = MA
Sheets("成绩统计").Cells(I + 2, 1) = "最低分"
Sheets("成绩统计").Cells(I + 2, 2) = MI
Sheets("成绩统计").Cells(I + 3, 1) = "do while语句流程图平均分"
Sheets("成绩统计").Cells(I + 3, 2) = P
End Sub
思考题:如果要在CJTJ程序中增加计算标准差功能,程序该如何修改?
【例3】打印九九乘法表。
Sub 九九乘法表()
Dim i as integer, j as integer
For i=1 to 9
For j=1 to 9
Sheets(“九九乘法表”).Cells(I,j)= I & ”*” & j & ”=” & i*j
Next j
Next i
End sub
程序说明:
(1) 循环嵌套:外循环I循环,内循环J循环;
(2) 关键语句:
Sheets(“九九乘法表”).Cells(I,j)
= I & ”*” & j & ”=” & i*j
思考题:如何打印主对角线下面的三角形状的九九乘法表?
【例4】打印N以内的素数。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论