Страницы: 1
RSS
Вывод результатов на лист Excel при помощи команды Cells
 
Добрый вечер! Я только начал учить язык 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
Изменено: Kozyr - 11.07.2017 23:35:00
 
Оформляйте код тегами и пример в файле принято прикладывать.
Я сам - дурнее всякого примера! ...
 
Спасибо.
А примера у меня нету (я пока пишу для пустого Excel и хочу туда вывести результаты - задача просто разобраться), данные для вывода в коде
 
А пишете Вы код на бумажке из блокнота... И предлагаете создать файл, копировать Ваш код из сообщения и вставить в редактор. Кому это надо?
 
Цитата
Kozyr написал:
проблема в том
что вы выводите 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
 
С оформлением косяк понял, прошу прощения.

Спасибо за помощь!
Страницы: 1
Читают тему
Наверх