如何在Workbook_BeforeSave中的单元格中填充颜色

我目前有这个代码如下:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) ThisWorkbook.Sheets("Sheet1").Cells(1, 1).Select For i = 2 To 10 If ThisWorkbook.Sheets("Sheet1").Cells(i, 1).Value = "YES" Then For j = 2 To 5 If ThisWorkbook.Sheets("Sheet1").Cells(i, j).Value = "" Then **<insert format here>** End If Next j End If If ThisWorkbook.Sheets("Sheet1").Cells(i, 1).Value = "NO" Then For j = 2 To 5 If ThisWorkbook.Sheets("Sheet1").Cells(i, j).Value = "" Then **<insert format here>** End If Next j End If Next i End Sub 

现在。 我试图在If语句中添加下面的代码,但没有奏效

 ThisWorkbook.Sheets("Sheet1").Cells(i, j).Interior.ColorIndex = 3 

我们如何将填充颜色添加到没有价值的单元格?

Interior.ColorIndex必须在范围上工作

也许是不能按预期工作的逻辑

尝试这个

 Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Dim i As Long With ThisWorkbook.Sheets("Sheet1") For i = 2 To 10 Select Case .Cells(i, 1).value Case "YES" If WorksheetFunction.CountA(.Cells(i, 2).Resize(, 4)) < 4 Then .Cells(i, 2).Resize(, 4).SpecialCells(xlCellTypeBlanks).Interior.ColorIndex = 3 Case "NO" If WorksheetFunction.CountA(.Cells(i, 2).Resize(, 4)) < 4 Then .Cells(i, 2).Resize(, 4).SpecialCells(xlCellTypeBlanks).Interior.ColorIndex = 2 End Select Next i End With End Sub 

试试这个(保存之前):

 Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) ThisWorkbook.Sheets("Tabelle1").Cells(1, 1).Select For i = 2 To 10 If ThisWorkbook.Sheets("Tabelle1").Cells(i, 1).Value = "YES" Then For j = 2 To 5 If ThisWorkbook.Sheets("Tabelle1").Cells(i, j).Value = "" Then ThisWorkbook.Sheets("Tabelle1").Cells(i, j).Interior.ColorIndex = 3 '**<insert format here>** End If Next j End If If ThisWorkbook.Sheets("Tabelle1").Cells(i, 1).Value = "" Then For j = 2 To 5 If ThisWorkbook.Sheets("Tabelle1").Cells(i, j).Value = "" Then ThisWorkbook.Sheets("Tabelle1").Cells(i, j).Interior.ColorIndex = 3 '**<insert format here>** End If Next j End If Next i End Sub