我认为这很简单,但我是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
任何人都知道快速修复?
谢谢!
答案 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