Windows Forms - Funções com DataGridView

Criticar valores exibidos na célula

Esta funcionalidade varre as células de um DataGridView e ao encontrar o Valor de venda ou de compra de um produto zerado ou um produto em estoque por mais de 90 dias ele coloca o fundo amarelo na linha inteira e o campo criticado ele coloca o fundo laranja.

Código

'critica o valor das colunas de um gridview
       For a = 0 To FrmDataSet.dgvDados.Rows.Count - 1
           'For b = 0 To FrmDataSet.dgvDados.Columns.Count - 1

           'Valor de Venda = 0
           If CSng(FrmDataSet.dgvDados.Rows(a).Cells(8).Value) = 0 Then
               'colorindo a linha inteira com fundo amarelo
               For b = 0 To FrmDataSet.dgvDados.Columns.Count - 1
                   FrmDataSet.dgvDados.Rows(a).Cells(b).Style.BackColor = System.Drawing.Color.Yellow
               Next
               'colorindo a linha coluna criticada com fundo laranja
               FrmDataSet.dgvDados.Rows(a).Cells(8).Style.BackColor = System.Drawing.Color.Orange
           End If

           'dias em estoque > 90 dias
           If IsDBNull(FrmDataSet.dgvDados.Rows(a).Cells(9).Value) OrElse CSng(FrmDataSet.dgvDados.Rows(a).Cells(9).Value) <= 0 Then
               For b = 0 To FrmDataSet.dgvDados.Columns.Count - 1
                   FrmDataSet.dgvDados.Rows(a).Cells(b).Style.BackColor = System.Drawing.Color.Yellow
               Next
               FrmDataSet.dgvDados.Rows(a).Cells(9).Style.BackColor = System.Drawing.Color.Orange
           End If

           'valor de compra = 0
           If IsDBNull(FrmDataSet.dgvDados.Rows(a).Cells(10).Value) OrElse CSng(FrmDataSet.dgvDados.Rows(a).Cells(10).Value) = 0 Then
               For b = 0 To FrmDataSet.dgvDados.Columns.Count - 1
                   FrmDataSet.dgvDados.Rows(a).Cells(b).Style.BackColor = System.Drawing.Color.Yellow
               Next
               FrmDataSet.dgvDados.Rows(a).Cells(10).Style.BackColor = System.Drawing.Color.Orange
           End If

       Next