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
    提示:先将三个系数ABC存放到表"解一元二次方程"的单元格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
提示:先将三个系数ABC存放到表"解一元二次方程"的单元格B1:B3中,运行结果在B4:B5中)。
【例2】给定成绩数据在表sheet2中,求最高分、最低分和平均分。
1程序流程总图
   

2VBA程序
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小时内删除。