VBA определить наибольшее значение - PullRequest
0 голосов
/ 06 ноября 2018

Теоретически приведенная ниже программа должна читать имя и рост ученика, если в «Stud» вставлено пустое значение, цикл должен завершиться. Конечная цель - показать имя и рост самого высокого ученика. Я использовал переменную «K», чтобы определить, какое значение является самым высоким в цикле, но я зашел в тупик. К сожалению, я застрял на следующем:

FIRST Завершить цикл, когда вставлен пустой «Стад»; ВТОРОЙ Определите имя самого высокого студента ТРЕТЬЕ В конце создайте в MsgBox таблицу с указанием имени и роста каждого ученика

Большое спасибо,

Sub C4()

Dim Stud As String
Dim High As Single
Dim cat As String
Dim k As Byte

        Stud = InputBox("Name")
        High = InputBox("Hight[cm]")

    Do While Stud <> ""

        k = High

        cat = cat & Stud & ("   ") & Str(High) & Chr(10)
        Stud = InputBox("Name")
        High = InputBox("Hight[cm]")
            If k > High Then
        High = k
            Else: High = High
        End If
    Loop

        MsgBox cat

End Sub

1 Ответ

0 голосов
/ 06 ноября 2018

Здесь исправление вашего кода с как можно меньшим количеством изменений, чтобы вы могли понять, что пошло не так. Я бы также предложил использовать пользовательскую форму в этом случае:

Option Explicit

Sub C4()

Dim Stud As String
Dim High As Long
Dim TallestStudent As String
Dim cat As String
Dim k As Long

        Stud = InputBox("Name")
        High = InputBox("Height[cm]")
        cat = Stud & ("   ") & Str(High) & Chr(10)
        k = High
        TallestStudent = Stud

    Do While Stud <> ""

        Stud = InputBox("Name")

        If Stud = "" Then
            Exit Do
        End If

        High = InputBox("Height[cm]")
            If k < High Then
                k = High
                TallestStudent = Stud
            End If

        cat = cat & Stud & ("   ") & Str(High) & Chr(10)

    Loop

        MsgBox cat & Chr(10) & "The Tallest Student was: " & TallestStudent

End Sub

Итак, чтобы заставить ваши три пункта работать:
ПЕРВЫЙ момент: здесь вы должны были убедиться, что выходите из цикла сразу после того, как имя не указано (с помощью Exit Do)
ВТОРОЙ момент: делается в конце. High не было ясно в вашем коде. Теперь это рост каждого ученика, а новый Dim TallestStudent дает имя самого высокого ученика.
Третий пункт: теперь сообщение возвращает имя, рост и самого высокого ученика, которого не было в вашем коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...