我需要帮助编写一个代码,只有在选中同一列中的复选框(Form Control)时才会在C列中添加1年(从C2开始),然后清除所有复选框,所有这些都完成了单击按钮(表单控件)。
这是我目前的按钮代码,它只增加1年C2:
Sub Button211_Click()
Range("$C2").Value = DateAdd("yyyy", 1, CDate(Range("$C2")))
End Sub
答案 0 :(得分:1)
演示:
将一年添加到范围的代码非常简单
你可以使用这个sub并只传递一个范围
Sub AddYearToRange(TheRange As Range)
Dim c
For Each c In TheRange
If IsDate(c.Value) Then c.Value = DateAdd("yyyy", 1, c.Value)
Next c
End Sub
使用示例:
AddYearToRange [C2:C5]
AddYearToRange Range("C2:C5")
AddYearToRange Selection
AddYearToRange Sheets("Sheet1").Range("C2:C5")
如果您想要在更改单元格旁边放置一个X,可以添加:
Sub AddYearToRange(TheRange As Range)
Dim c
For Each c In TheRange
If IsDate(c.Value) Then
c.Value = DateAdd("yyyy", 1, c.Value)
c.offset(0,1).Value = "X"
End If
Next c
End Sub
如果您只想选中复选框,则可以添加以下内容:
Sub AddYearToRange(TheRange As Range, CheckboxValue As Integer)
'Unchecked = xlOff = -4146
'Checked = 1
'Multi-check checkbox = 2
If CheckboxValue <> 1 Then Exit Sub
Dim c
For Each c In TheRange
If IsDate(c.Value) Then
c.Value = DateAdd("yyyy", 1, c.Value)
c.Offset(0, 1).Value = "X" 'This line places an X one column to the right
End If
Next c
End Sub
然后,只需将复选框值传递给它
示例用法:
AddYearToRange [C2:C5], CheckBoxes("Check Box 1").Value
^如果选中该复选框,此示例将仅向该范围添加一年。