我有代码将datagridview每行中的单元格中的值求和,并将结果放入同一行中的另一个单元格中。它适用于大多数行,但是即使单元格中有值,也不会随机给出任何结果。我不知道是什么原因造成的。
For i = 0 To ct
tot1 = 0
tot2 = 0
tot3 = 0
tot4 = 0
tot5 = 0
If Not IsDBNull(dgvPrice.Rows(i).Cells(10).Value) Then
If dgvPrice.Rows(i).Cells(10).Value > 0 Then
tot1 = dgvPrice.Rows(i).Cells(10).Value
End If
End If
If Not IsDBNull(dgvPrice.Rows(i).Cells(11).Value) Then
If dgvPrice.Rows(i).Cells(11).Value > 0 Then
tot2 = dgvPrice.Rows(i).Cells(11).Value
End If
End If
If Not IsDBNull(dgvPrice.Rows(i).Cells(12).Value) Then
If dgvPrice.Rows(i).Cells(12).Value > 0 Then
tot3 = dgvPrice.Rows(i).Cells(12).Value
End If
End If
If Not IsDBNull(dgvPrice.Rows(i).Cells(13).Value) Then
If dgvPrice.Rows(i).Cells(13).Value > 0 Then
tot4 = dgvPrice.Rows(i).Cells(13).Value
End If
End If
tot5 = tot1 + tot2 + tot3 + tot4
If Not IsDBNull(dgvPrice.Rows(i).Cells(7).Value) Then
If tot5 > 0 Then
dgvPrice.Rows(i).Cells(21).Value = tot5
ElseIf tot5 = 0 And dgvPrice.Rows(i).Cells(7).Value > 0 Then
dgvPrice.Rows(i).Cells(21).Value = dgvPrice.Rows(i).Cells(7).Value
ElseIf tot5 = 0 And dgvPrice.Rows(i).Cells(7).Value = 0 Then
dgvPrice.Rows(i).Cells(7).Value = 0
End If
End If
Next
答案 0 :(得分:0)
只需将列索引调整为10到13,然后将总数放入Cell(27)。我添加了内部循环以遍历各列。如果单元格中没有任何内容,Continue For
只会将执行移回到For行。 dgvPrice.Rows.Count - 2
是因为AllowUserToAddRows
在默认情况下为True,因此网格中有多余的空行。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim intValue As Integer
For rowIndex = 0 To dgvPrice.Rows.Count - 2
Dim total As Integer = 0
For columnIndex = 0 To 2
If IsNothing(dgvPrice.Rows(rowIndex).Cells(columnIndex).Value) Then
Continue For
End If
Integer.TryParse(dgvPrice.Rows(rowIndex).Cells(columnIndex).Value.ToString, intValue)
total += intValue
Next
dgvPrice.Rows(rowIndex).Cells(3).Value = total
Next
End Sub