匹配范围与复选框

时间:2014-12-29 21:14:23

标签: vba checkbox

我认为这很简单,但我是VBA的新手。我有一行我想要0或来自不同行的值(匹配长度和位置)。我有一个计算财务报表行,我想带入不同的财务报表或取决于复选框null。这是我到目前为止,但它只返回整个范围的E111,我想E60 = E111,F60 = F111等。

Private Sub CheckBox2_Click()
    `With Worksheets("Project Model").Range("E60:KX60")
        `If CheckBox2.Value = True Then .Value = 0
        `If CheckBox2.Value = False Then .Value = ("E111)
    End With
End Sub

任何人都知道快速修复?

谢谢!

2 个答案:

答案 0 :(得分:0)

尝试以下内容:

With Worksheets("Project Model").Range("E60:KX60")
    If (CheckBox2.Value = True) Then
        .Value = 0
    Else
        .Value = Worksheets("Project Model").Range("E111:KX111").Value
    End If
End With

另请注意,如果您的CheckBox位于“项目模型”中,表单本身,然后您不需要在代码中按名称显式指定工作表(如果稍后更改工作表名称而不更新代码,则会导致错误。)

答案 1 :(得分:0)

我相信这就是你要找的东西。 CheckBox与您的数据位于同一页面上。

CheckBox - 已检查:
范围E60:KX60显示“0”。

CheckBox - 未选中:
对于范围E60:KX60显示列的字母后跟“111” 防爆。 “E111”

Private Sub CheckBox2_Click()
    Dim i As Integer
    Dim col As String

    If CheckBox2.Value = True Then Range("E60:KX60").Value = 0

    If CheckBox2.Value = False Then
        'For Ranges E to KX
        For i = 5 To 310
            'Get Column Address
            col = Cells(60, i).address(False, False)
            'Remove "60" from Column Address
            col = Left(col, Len(col) - 2)
            'Display column and "111"
            Cells(60, i).Value = col & "111"
        Next
    End If
End Sub