我在教自己的VBA使用在线教程。使用我迄今为止学到的知识,我做了一个简单的BODMAS问题生成器。但是我无法弄清楚如何计算生成的问题的答案。以下是我所做的:学习VBA - BODMAS生成器
Dim Indicator As String, Equation As String, IndicatorNum As Integer, RandNum As Integer, Answer As Integer
Type EqnStatements
Statement1 As Integer
Statement2 As Integer
Statement3 As Integer
End Type
Type Indicators
Indicator1 As String
Indicator2 As String
End Type
Private Sub IndicatorGenerator()
IndicatorNum = Int(Rnd * 4)
Select Case IndicatorNum
Case Is = 0
Indicator = "+"
Case Is = 1
Indicator = "-"
Case Is = 2
Indicator = "*"
Case Is = 3
Indicator = "/"
End Select
End Sub
Private Sub StatementGenerator()
RandNum = Int(Rnd * 10 + 1)
End Sub
Sub EquationGenerate()
Dim Eqn As EqnStatements, Ind As Indicators
StatementGenerator
Eqn.Statement1 = RandNum
StatementGenerator
Eqn.Statement2 = RandNum
StatementGenerator
Eqn.Statement3 = RandNum
IndicatorGenerator
Ind.Indicator1 = Indicator
IndicatorGenerator
Ind.Indicator2 = Indicator
Equation = Eqn.Statement1 & " " & Ind.Indicator1 & " " & Eqn.Statement2 & " " & Ind.Indicator2 & " " & Eqn.Statement3
Cells(2, 3) = Equation
End Sub
Sub AnswerShow()
Answer = Eqn.Statement1 & Ind.Indicator1 & Eqn.Statement2 & Ind.Indicator2 & Eqn.Statement3
Cells(3, 3) = Answer
End Sub
第一个主Sub工作正常,并产生输出。当我运行第二个主子(AnswerShow)时,出现错误:“需要对象”。我不确定如何使用存储在变量中的值来计算公式。
看一看这个,找出你如何使用一个新的定义它的另一个'Sub'对象。 http://stackoverflow.com/questions/22980061/excel-vba-object-sub-call-with-2-object-parameters-gives-compile-error-expected –
现在你只能在'EquationGenerate()中定义它们' 。为了学习如何全局定义对象,看看这个:http://stackoverflow.com/questions/21380724/best-practice-for-creating-a-public-object-in-excel-vba –