如果 D 列至 DX(数量)中有任何值,我会尝试在文件的 B 列中强制显示食物名称。
合理的方法是,如果收到任何新的食品请求,而该请求未出现在文件中,用户可以暂时输入食品名称,然后输入数量。这是为了确保操作员不会输入错误值或忘记传达他们添加的新项目的信息。
是否可以添加一个按钮,用于检查从 D6 到 DX98 的所有工作表,如果发现任何数量,则将 C 中的相应单元格标记为红色,并出现一个简单的 MsgBox 提示文件中有错误。
我正在处理的文件是这样的: http://s000.tinyupload.com/?file_id=00523976624440052148
答案1
打开宏/Visual Basic,双击工作表并在右侧插入此代码:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim wkb As Workbook
Dim wks As Worksheet
Dim wksRange As Range
Set wkb = ThisWorkbook
Set wks = ActiveSheet
For i = 6 To 98 ' rows to be sweeped
Set wksRange = wks.Range(Cells(i, 4), Cells(i, 127)) ' check from column 4 (D) to 127(DW)
'Paint grey cells on columns A to C
color_cell_a = Cells(i, 1).Interior.Color
Cells(i, 2).Interior.Color = color_cell_a
Cells(i, 3).Interior.Color = color_cell_a
'If on the row there are values
If WorksheetFunction.CountA(wksRange) <> 0 Then
itemName = Cells(i, 2)
itemPrice = Cells(i, 3)
'Change color on column B
If itemName = "" Then
Cells(i, 2).Interior.Color = RGB(184, 0, 0)
End If
'Change color on column C
If itemPrice = "" Then
Cells(i, 3).Interior.Color = RGB(184, 0, 0)
End If
End If
Next i
End Sub
它检查覆盖的区域D6:DW98
,以及行上是否有值项目名和单价,它会将这些单元格标记为红色,直到您在其上写下任何内容。
如果您想定制,代码很容易修改。