我在创建一系列activex复选框名称时遇到了一些麻烦。我想创建这个数组,所以我可以使用For循环,而不必分别键入每个复选框代码。这是我的代码的一部分。我得到的错误说类型不匹配并突出显示&amp ;.这样做的方法我想要array(0)= ThirteenJan,array(1)= ThirteenFeb等等。
Dim Month(0 To 11) As String
Dim Year(0 To 3) As String
Dim Time(0 To 47) As CheckBox
Dim i, j, k, l, m As Integer
'月份的初始值被命名为,因为按钮的命名方式就是这样 '初始值 月(0)=“Jan” 月(1)=“二月” 月(2)=“三月” 月(3)=“四月” 月(4)=“五月” 月(5)=“君” 月(6)=“七月” 月(7)=“八月” 月(8)=“九月” 月(9)=“十月” 月(10)=“十一月” 月(11)=“十二月”
Year(0) = "Thirteen"
Year(1) = "Fourteen"
Year(2) = "Fifteen"
Year(3) = "Sixteen"
k = 0
'I can't get the following code to work and I'm not sure what's wrong with it. It says type mismatch and highlights the &.
'Create an array that has all the names of the checkboxes in each element of it
For i = 0 To 3
For j = 0 To 11
Set Time(k) = Year(i) & Month(j)
k = k + 1
Next j
k = k + 1
Next i
k = 4
l = 18
For i = LBound(Time) To UBound(Time)
'j loops through worksheets, the summary sheets are organized differently than the rest of the workbook so they have to have their own code
For j = 2 To 3
'k loops through the columns, 54 is Column BB
If k = 16 Or k = 29 Or k = 42 Then
k = k + 1
End If
If Time(i).Value = True Then
Sheets(j).Columns(k).EntireColumn.Hidden = False
Else
Sheets(j).Columns(k).EntireColumn.Hidden = True
End If
Next j
For j = 4 To 9
If l = 30 Or l = 31 Or l = 44 Or l = 45 Or l = 58 Or l = 59 Then
l = l + 1
End If
答案 0 :(得分:0)
Sub Macro1()
Dim MyCheckboxes(1 To 10) As OLEObject
Dim shp As Shape
Range("A1").Select
For i = 1 To 10
ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _
DisplayAsIcon:=False, Left:=240, Top:=75.75, Width:=49.5, Height:= _
17.25).Select
Set MyCheckboxes(i) = Selection
Set shp = ActiveSheet.Shapes("CheckBox" & i)
shp.Left = ActiveCell.Left
shp.Top = ActiveCell.Top
shp.Height = ActiveCell.Height
shp.Width = ActiveCell.Width
ActiveCell.Offset(2, 0).Select
Next
End Sub