Use this code to find the index of the currently selected control in an array of option buttons:
Function WhichOption(Options As _ Object) As Integer' This function returns the index of the ' Option Button whose value is true. Dim i ' In case Options is not a valid ' object On Error GoTo WhichOptErr ' Default to failed WhichOption = -1 ' check each OptionButton in the ' array. Note this fails if indices ' are not consecutive For i = Options.lbound To _ Options.ubound If Options(i) Then ' when the one set to true is ' found, Remember it WhichOption = i ' and stop looking Exit For End If NextWhichOptErr:End Function
Call the function with code like this, assuming that iCurOptIndex is an integer and Option1 is the name of anarray of OptionButton controls:
iCurOptIndex = WhichOption(Option1)
Note the function parameter is an object. This function only works if the parameter is an object or a variant.