No te compliques tanto, recuerda que un datagrid esta conectado a la BD, tons lo que puedes hacer es lo siguiente
If dgValorParticular.Recordset.Recordcount > 0 Then
dgValorParticular.Recordset.MoveFirst
While Not dgValorParticular.EOF
strSQL = "INSERT INTO VALORES_PARTICULARES (ID_VALOR_B, ID_LOCALIZACION, VALOR) VALUES (" & dgValorParticular.Recordset(0) & ",'" & dgValorParticular.Recordset(3) & "','" & dgValorParticular.Recordset(1) & "')"
cnGral.Execute strSQL
dgValorParticular.Recordset.MoveNext
Wend
End If