НП
Наталия Пучинина

помогите .кто хорошо понимает visual basic?

Public Sub Zarplata()
Dim kvartal1 As Long
Dim kvartal2 As Long
Dim kvartal3 As Long
Dim kvartal4 As Long
Dim summekvar As Integer
Dim nomerkvar As Integer
For i = 3 To 7
For k = 1 To 4
For t = 3 To 7
kvartal1 = ActiveSheet.Cells(i, 2) * ActiveSheet.Cells(t, 9)
kvartal2 = ActiveSheet.Cells(i, 3) * ActiveSheet.Cells(t, 10)
kvartal3 = ActiveSheet.Cells(i, 4) * ActiveSheet.Cells(t, 11)
kvartal4 = ActiveSheet.Cells(i, 5) * ActiveSheet.Cells(t, 12)
If nomerkvar = 1 Then summekvar = kvartall
If nomerkvar = 2 Then summekvar = kvartal2
If nomerkvar = 3 Then summekvar = kvartal3
If nomerkvar = 4 Then summekvar = kvartal4
nomerkvar = ActiveSheet.Range("N2")
summekvar = ActiveSheet.Range("N4")
Next
Next
Next
End Sub

что не так?

Нюша
Нюша

Наверное, сначала нужно вычислить

nomerkvar = ActiveSheet.Range("N2")

а потом сравнивать его с цифрами

If nomerkvar = 1 Then summekvar = kvartall
If nomerkvar = 2 Then summekvar = kvartal2
If nomerkvar = 3 Then summekvar = kvartal3
If nomerkvar = 4 Then summekvar = kvartal4

И еще: что бы ни было присвоено переменной summekvar, все равно ей потом присвоится ActiveSheet.Range("N4")

И третье: переменным kvartalN присваивается в цикле каждый раз новое значение, а старые пропадают. Какой смысл присваивать все это в цикле? Может там суммы надо накапливать?

ПОСЛЕ ДОБАВЛЕНИЯ КАРТИНКИ ВСЕ ПРОЯСНИЛОСЬ!

Никаких тройных циклов. Все гораздо проще. Где-то так:

kvartal = 0
nomerkvar = ActiveSheet.Range("N2")
For i = 3 To 7
kvartal = kvartal + ActiveSheet.Cells(i, nomerkvar+1) * ActiveSheet.Cells(i, nomerkvar+8)
Next
ActiveSheet.Range("N4") = kvartal

Похожие вопросы
visual Basic помогите решить
visual basic помогите
помогите с калькулятором в visual basic
Visual Basic. Помогите
Помогите с Visual Basic
помогите с visual basic)
Кто понимает Visual Basic 2007 Express помогите пожалуста
помогите .кто хорошо понимает visual basic
кто понимает visual basic
visual basic