我写了一个函数,对于文档中的每个复选框,检查字段C140是否为空,如果取消选中同一行中的复选框。
Sub MarkCheckBoxes()
Dim chk As CheckBox
Dim ws As Worksheet
Set ws = ActiveSheet
For Each chk In ws.CheckBoxes
If ws.Range("C140").Value = "" Then
chk.Value = False
Else
chk.Value = True
End If
Next chk
End Sub
现在我想要更改它,对于每一行检查必填字段是否为空如果然后取消选中与空字段相同的行中的复选框,同样我需要干净的行颜色:
EntireRow.Interior.ColorIndex = xlColorIndexNone
当我将range("c140")
更改为range("c140:c150")
时,我的错误不匹配..
ALSO
拉尔夫给我第一部分的答案,但现在我还有另一个问题。
我想创建一些函数,允许我检查第149行中的任何字段是否为文本“必须然后检查下面的行是否为空,如果然后取消选中。所以我尝试了这样:
如果ws.Rows(“149”)=“强制性”那么 如果ws.Range(“C”& chk.TopLeftCell.Row).Value 但我不知道如何在每列中检查值
答案 0 :(得分:1)
在If statent:
中使用Worksheet的Cells属性而不是像这样的RangeIf ws.Cells(3, chk.TopLeftCell).Value = ""
答案 1 :(得分:0)
我相信你可能正在寻找这样的东西:
C140
说明:
我仅将C
的行更改为Range("C140")
+复选框所在的行号。我希望这是你一直在寻找的。 p>
关于您最初尝试将C140:C150
(一个单元格)更改为If
等一系列单元格:当然这是行不通的。这就像请将这个苹果与这10个苹果进行比较。作为回报,你会得到10个答案,其中一些可能是真的,而其他人可能对你的ture
条款是错误的。 VBA不知道要采用false
或sectionHeaderHeight
中的哪一个。