Excel根据行是否有值来验证数据



当用户单击按钮时,我希望能够根据C4:C列中是否有值(可以是字母或数字,接受任何内容(来显示emtpy字段的位置。代码应该一直填充到该行的DD列。如果C列中没有值,则不应填充任何颜色(例如,C6中的值和C7中的值然后停止;或者c8中的值在C9中没有值和C10中的值则不触发C9(例如,C10中的值应突出显示D10和E10,而不是突出显示F10并突出显示G10和H10(。一旦用户在黄色字段中输入了值,当他们再次单击按钮时,应该会删除黄色填充并返回到无颜色。参考的照片

我能想到我的解决方案的唯一方法是使用VBA,因为我正在使用按钮,我不太擅长使用VBA,而且最近才学会,所以如果有任何帮助,我将不胜感激。

到目前为止,我已经尝试过下面的代码(仅在单击时在选定的单元格上激活(:

Public Sub CommandButton1_Click()

Dim rng As Range 

Set rng = Selection

For Each cell in rng 
If cell.Text = "" Then 
cell.Interior.Color = vbYellow 
Else 
cell.Interior.Color = xlNone 
End If 
Next 

Reset 

End Sub

这样的东西应该可以工作:

Public Sub CommandButton1_Click()

Dim rng As Range, ws As Worksheet, cell As Range

Set ws = ActiveSheet
Set rng = ws.Range("C4:C" & ws.Cells(ws.Rows.Count, "C").End(xlUp).Row)

For Each cell In rng.Cells
With cell.Resize(1, 106).Interior 'from C to DD
If Len(cell.Value) = 0 Then
.Color = vbYellow
Else
.ColorIndex = xlNone '.ColorIndex not .Color
End If
End With
Next

Reset

End Sub

相关内容

  • 没有找到相关文章