Добрый вечер! Я только начал учить язык VBA, надеюсь на вашу помощь. У меня есть код (представлен ниже), последней процедурой хочу вывести результаты на лист Excel. Проблема в том, что и на 1, и на 2 строчку выводится "Name: Petya Surname: Vasichnin Dolznost: 5". Методом проб и ошибок я понял, проблема в том, что во второй процедуре команда "Call Vivod(starSotr)" идет последней, поэтому она и выводится 2 раза.
Вопрос в следующем: как правильно написать последнюю команду, чтобы в 1-ой строке было "Name: Vasya Surname: Petrov Dolznost: 1", а во второй - "Name: Petya Surname: Vasichnin Dolznost: 5".
Заранее прошу прощения за глупый вопрос и возможные ошибки в оформлении Спасибо
Код
Type Sotrudnik
Name As String
Surname As String
Dolznost As Integer
End Type
Sub MainProc()
Dim mladSotr As Sotrudnik
Dim starSotr As Sotrudnik
Call InitSotr(mladSotr, "Vasya", "Petrov", 1)
Call InitSotr(starSotr, "Petya", "Vasichnin", 5)
Call Vivod(mladSotr)
Call Vivod(starSotr)
End Sub
Sub InitSotr(ByRef sotr As Sotrudnik, ByVal Name As String, ByVal Surname As String, ByVal Dolznost As Integer)
sotr.Name = Name
sotr.Surname = Surname
sotr.Dolznost = Dolznost
End Sub
Sub Vivod(ByRef sotr As Sotrudnik)
Dim Index As Integer
For Index = 1 To 2
Cells(Index, 1) = "Name: " & sotr.Name & " Surname: " & sotr.Surname & " Dolznost: " & sotr.Dolznost
Next Index
End Sub
что вы выводите 2 раза данные по первому сотруднику, затем 2 раза по второму В ТЕ ЖЕ ячейки.
Цитата
как правильно написать последнюю команду
как вариант
Код
Sub Vivod(ByRef sotr As Sotrudnik)
Dim Index As Integer
Index = Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(Index, 1) = "Name: " & sotr.Name & " Surname: " & sotr.Surname & " Dolznost: " & sotr.Dolznost
End Sub