OptionButton索引问题
我在每行的前五个单元格上有五个选项按钮(窗体控件)。选项按钮链接到第六个单元格分别为每行 ,我想获得第六个单元格中的索引号。OptionButton索引问题
(选项按钮表单控件返回选项按钮的指示为链接细胞中的状态的值。)
现在的问题是从第二行起的选项按钮的索引号是大于5 所以在第六单元格的值大于5。我想他们是1 5
之间
较大(指数是选项按钮类的只读属性)如何才能实现这一目标? (最好不用vba)
感谢您的关注。
AS在使用GroupBox的注释中说明围绕每组按钮将允许每组独立操作。在下面的图片中,我删除了GroupBox名称,并将单元格边框与单元格边框对齐,然后使用单元格边框几乎遮住了groupbox,因此除了正在选择的单元外,不能指出它们即使存在最多一个):
根据要求,这里是一些VBA代码。我建议在运行此代码之前,将行的高度设置为至少20点。由于groupbox的最小高度是19.5,单元格的宽度将用于确定OptionButtons的宽度,因此请确保使用宽度足以满足OptionButton文本的宽度。
Sub Sample()
Dim Top As Variant, Left As Variant, Height As Variant, Width As Variant
Dim rngActiveRowA As Range, rngEndOfBox As Range
Dim lngActiveRow As Long, lngActiveColumn As Long
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False
End With
For lngActiveRow = 1 To 5
Set rngActiveRowA = Range("A" & lngActiveRow)
Set rngEndOfBox = Range("F" & lngActiveRow + 1)
Top = rngActiveRowA.Top
Left = rngActiveRowA.Left
Height = rngEndOfBox.Top - Top
Width = rngEndOfBox.Left - Left
ActiveSheet.GroupBoxes.Add(Left, Top, Width, Height).Caption = ""
For lngActiveColumn = 1 To 5
With ActiveSheet
Top = .Cells(lngActiveRow, lngActiveColumn).Top
Left = .Cells(lngActiveRow, lngActiveColumn).Left
Height = .Cells(lngActiveRow + 1, lngActiveColumn + 1).Top - Top
Width = .Cells(lngActiveRow + 1, lngActiveColumn + 1).Left - Left
End With
With ActiveSheet.OptionButtons.Add(Left, Top, Width, Height)
.Characters.Text = "OB" & lngActiveColumn
.LinkedCell = "$F$" & lngActiveRow
End With
Next lngActiveColumn
Next lngActiveRow
With Application
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
.EnableEvents = True
End With
End Sub
此代码将在前5行的每行的前5列周围创建一个groupbox。它还会在链接到各自行中的F单元的区域的每个单元格中填充一个选项按钮。并将每个按钮重命名为OB +它所在的列号。
感谢您的回复。图像正是我正在寻找的。这个groupbox&optionbutton可以使用vba创建吗?如果是,你可以分享代码。 – Santosh
@Santosh根据要求,我已经更新了我的答案,包括样本VBA。 – user2140261
超级喜欢它。非常感谢。 – Santosh
这似乎不起作用。但是,如果您为相关的选项按钮设置了组框控件,它将按照您希望的那样工作。 – shahkalpesh
由于@shahkalpesh表示每个独立的选项按钮组必须位于其自己的GroupBox中 – user2140261