目前我在每個Case語句中有相同的代碼,有時需要重複50次,是否有一種方法可以簡化此操作: 對於每一個我都必須創建40個幀,每個名稱分別是VarFrame1 ... VarFrame40以及 我在Excel中創建在Visual Basic 6.5的代碼循環VBA案例陳述
For iVar = 1 To nrVars
Select Case iVar
Case 1
VarFrame1.Caption = varInfo(iVar).varName
VarFrame1.Top = lastRow
VarFrame1.Left = leftMargin
VarFrame1.Height = 12
VarFrame1.Visible = True
Case 2
VarFrame2.Caption = varInfo(iVar).varName
VarFrame2.Top = lastRow
VarFrame2.Left = leftMargin
VarFrame2.Height = 12
VarFrame2.Visible = True
.... to Case 50
End Select
lastRow = lastRow + 15
Dim res As Boolean
Select Case varInfo(iVar).varType
Case "RadioButton"
nrOptionButtonVals = nrOptionButtonVals + 1
res = SetUpOptionButtons(lastRow, iVar, nrOptionButtonVals, varInfo(iVar).varOptions, varInfo(iVar).varOptionText, False)
Case "RadioButtonOther"
nrOptionButtonVals = nrOptionButtonVals + 1
res = SetUpOptionButtons(lastRow, iVar, nrOptionButtonVals, varInfo(iVar).varOptions, varInfo(iVar).varOptionText, True)
Case "DropDown"
res = SetUpDropDown(lastRow, iVar, varInfo(iVar).varOptions, varInfo(iVar).varOptionText)
Case "CheckBox"
nrCBButtonVals = nrCBButtonVals + 1
res = SetUpCBButtons(lastRow, iVar, nrCBButtonVals, varInfo(iVar).varOptions, varInfo(iVar).varOptionText, False)
Case "CheckBoxOther"
nrCBButtonVals = nrCBButtonVals + 1
res = SetUpCBButtons(lastRow, iVar, nrCBButtonVals, varInfo(iVar).varOptions, varInfo(iVar).varOptionText, True)
Case "TextEntry"
res = SetUpTextEntry(lastRow, iVar, varInfo(iVar).varType, varInfo(iVar).varOptions, varInfo(iVar).varOptionText)
Case "DateEntry"
res = SetUpTextEntry(lastRow, iVar, varInfo(iVar).varType, varInfo(iVar).varOptions, varInfo(iVar).varOptionText)
Case "NumberEntry"
res = SetUpTextEntry(lastRow, iVar, varInfo(iVar).varType, varInfo(iVar).varOptions, varInfo(iVar).varOptionText)
End Select
lastRow = lastRow + 10
Next iVar
QuitButton.Top = lastRow
lastRow = lastRow + 30
PhraseDisplay.Height = lastRow + 50
DisplayCorrectedPhrase
SetUpForm = True
End Sub
與蒂姆·威廉姆斯評論更新時間:
Public Function SetUpForm(ByRef thePhrase As String) As Boolean
Dim nrVars, iVar, lastRow As Integer
nrVars = Utilities.getNrPhraseVariables(thePhrase)
ReDim varInfo(0 To nrVars)
PhraseBoxOriginal.Text = thePhrase
For iVar = 1 To nrVars
varInfo(iVar).varName = Utilities.getPhraseVariable(thePhrase, iVar)
varInfo(iVar).varIndex = PhraseVars.getPhraseVarIndex(varInfo(iVar).varName)
varInfo(iVar).varType = PhraseVars.getTypeFromIndex(varInfo(iVar).varIndex)
varInfo(iVar).varOptions = PhraseVars.getOptionsFromIndex(varInfo(iVar).varIndex)
varInfo(iVar).varOptionText = PhraseVars.getOptionTextFromIndex(varInfo(iVar).varIndex)
varInfo(iVar).varValue = Utilities.getVarOption("", 0) ' Get the default option string
Next iVar
nrOptionButtonVals = 0
lastRow = 115
For iVar = 1 To nrVars
With Me.Controls("VarFrame" & iVar)
.Caption = varInfo(iVar).varName
.Top = lastRow
.Left = leftMargin
.Height = 12
.Visible = True
End With
Next iVar
lastRow = lastRow + 15
Dim res As Boolean
Select Case varInfo(iVar).varType
Case "RadioButton"
nrOptionButtonVals = nrOptionButtonVals + 1
res = SetUpOptionButtons(lastRow, iVar, nrOptionButtonVals, varInfo(iVar).varOptions, varInfo(iVar).varOptionText, False)
Case "RadioButtonOther"
nrOptionButtonVals = nrOptionButtonVals + 1
res = SetUpOptionButtons(lastRow, iVar, nrOptionButtonVals, varInfo(iVar).varOptions, varInfo(iVar).varOptionText, True)
Case "DropDown"
res = SetUpDropDown(lastRow, iVar, varInfo(iVar).varOptions, varInfo(iVar).varOptionText)
Case "CheckBox"
nrCBButtonVals = nrCBButtonVals + 1
res = SetUpCBButtons(lastRow, iVar, nrCBButtonVals, varInfo(iVar).varOptions, varInfo(iVar).varOptionText, False)
Case "CheckBoxOther"
nrCBButtonVals = nrCBButtonVals + 1
res = SetUpCBButtons(lastRow, iVar, nrCBButtonVals, varInfo(iVar).varOptions, varInfo(iVar).varOptionText, True)
Case "TextEntry"
res = SetUpTextEntry(lastRow, iVar, varInfo(iVar).varType, varInfo(iVar).varOptions, varInfo(iVar).varOptionText)
Case "DateEntry"
res = SetUpTextEntry(lastRow, iVar, varInfo(iVar).varType, varInfo(iVar).varOptions, varInfo(iVar).varOptionText)
Case "NumberEntry"
res = SetUpTextEntry(lastRow, iVar, varInfo(iVar).varType, varInfo(iVar).varOptions, varInfo(iVar).varOptionText)
End Select
lastRow = lastRow + 10
Next iVar
QuitButton.Top = lastRow
lastRow = lastRow + 30
PhraseDisplay.Height = lastRow + 50
DisplayCorrectedPhrase
SetUpForm = True
End Sub
vb.net或vba?他們真的不一樣,你知道......這裏唯一的變量是你操作哪個控件,所以你需要弄清楚如何通過名字獲得對該控件的引用。 'Controls(「namegoeshere」)似乎是一個很好的候選人。 –
Excel中的Visual Basic 6.5 – user1660680
'With Me.Controls(「VarFrame」&iVar)...' –