Как найти наибольшее число vba

Kevbrin

0 / 0 / 0

Регистрация: 01.02.2010

Сообщений: 5

1

Определить максимальное из трех чисел

01.02.2010, 10:07. Показов 12271. Ответов 6

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Всем привет! Помогите написать программку на VBA которая определяет максимальное из 3-х чисел, 2 способами. В обед мне её надо сдать!
Вот что у меня получилось:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub max_3()
Dim A As Integer, B As Integer, C As Integer, D As Integer
A = InputBox(“ВведитеA”)
B = InputBox(“ВведитеB”)
C = InputBox(“ВведитеC”)
If A > B And A > C Then
D = A
ElseIf A > B And B > C Then
D = B
Else
D = C
End If
MsgBox “D = ” & D
End Sub

Чего ей не хватает, подскажите пожалуйста!!!

Добавлено через 19 минут

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub max_3()
Dim A As Integer, B As Integer, C As Integer, D As Integer
A = InputBox(“ВведитеA”)
B = InputBox(“ВведитеB”)
C = InputBox(“ВведитеC”)
If A > B And A > C Then
D = A
ElseIf A > B And B > C Then
D = B
Else
D = C
End If
MsgBox “D = ” & D
End Sub



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

01.02.2010, 10:07

Ответы с готовыми решениями:

Определить какая буква встречается во всех трех словах максимальное количество раз
Ввести три слова х1, х2, х3. Определить какая буква встречается во всех трех словах максимальное…

Определить какая буква встречается во всех трех словах максимальное количество раз
Определить какая буква встречается во всех трех словах максимальное количество раз. Если таких букв…

Найти максимальное из трёх чисел
Помогите пожалуйста исправить ошибки:scratch:

1) Заданы три массива а(m), b(n) и c(q). Найти…

Если среди трех чисел А, В, С имеется хотя бы одно четное, вычислить максимальное, инач
Помогите пожалуйста решить задачу: Если среди трех чисел А, В, С имеется хотя бы одно четное,…

6

Xpoft

Asgard’s resident

91 / 88 / 10

Регистрация: 03.12.2009

Сообщений: 175

01.02.2010, 10:40

2

Ошибка в логике блока if

Visual Basic
1
2
3
4
5
6
7
If A > B And A > C Then 'это правильно
D = A
ElseIf B > A And B > C Then 'тут была ошибка
D = B
Else
D = C
End If

И еще подумайте о том что числа могут быть равны то есть неравенства должны быть не строгие! Например если все три числа будут равны? то результат будет все равно max = C …



1



0 / 0 / 0

Регистрация: 01.02.2010

Сообщений: 5

01.02.2010, 11:43

 [ТС]

3

Спасибо за подсказку! Я 3-й день изучаю VBA и уже третий день думаю и никак не надумаю!!!



0



Xpoft

Asgard’s resident

91 / 88 / 10

Регистрация: 03.12.2009

Сообщений: 175

01.02.2010, 13:35

4

Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Ну я бы сделал что-нибудь вроде этого:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
If A >= B Then
    If A >= C Then
        D = A
    Else: D = C
    End If
ElseIf A < B Then
    If B >= C Then
        D = B
    Else: D = C
    End If
End If

На вид наверное мудрено, зато правильно)



1



Комбайнёр

1606 / 704 / 77

Регистрация: 27.05.2008

Сообщений: 2,535

01.02.2010, 14:58

5

А напишика мне алгоритм для 20 чисел, а то что-то у меня не получается



1



Xpoft

01.02.2010, 15:03

Не по теме:

Вопрос был для трех! если нашли ошибку, так и скажите , если же нет то не флудите просто так… ваш коммент по моему не уместен…
а вообще для 20 естесно по другому…



1



БурундукЪ

10028 / 2617 / 84

Регистрация: 17.02.2009

Сообщений: 10,364

05.02.2010, 17:50

7

Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

аналитика, я б по другому сделал
чему d равно в начале? не понять. если d=0 (по умолчанию) то при А<0 d (всеравно) =0
поэтому предлагаю:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
dim flgA as Boolean
n=InputBox(“сколько тебе чисел?”)
for i=1 to n
   A=InputBox(“Число давай!”)
   if not flgA then
      flgA = True
      d=A
   else
      if A>d then d=A
   end if
next i



1



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

05.02.2010, 17:50

Помогаю со студенческими работами здесь

Определить максимальное из трех чисел
Ввести три числа А, В, С и определить максимальное из них.

Определить максимальное число из трех чисел
Нужно найти максимальное из трех чисел с помощью if/then/else, без использования циклов и прочего.

из трех чисел определить максимальное, ПомоГите исправить ошибку
#include &lt;iostream&gt;
using namespace std;
double MaxOfThree(double a, double b, double c, int…

Определить максимальное число из трех чисел записанных в файл
Даны три числа , записанные в некотором файле. Определить максимальное среди них ..

Определить максимальное и минимальное из трех вещественных чисел,вводимых с клавиатуры.
Определить максимальное и минимальное из трех вещественных чисел,вводимых с клавиатуры.

Определить минимальное и максимальное из трех заданных чисел, записать их квадраты
Заданы 3 числа.Определить какое из них самое маленькое,а какое самое большое.Записать квадрат…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

7

As the name suggests, Max is used to finding the maximum value from a given data set or array. Although it is a worksheet function, one may use it with the worksheet method as a worksheet function. However, there is a limitation to this method as this function takes an array as an argument. Therefore, there can only be 30 values in the array.

Excel VBA Max Function

We have several numerical functions in Excel. We can count numerical values in the range and sum and find the minimum value and maximum value of the lot. To find the maximum value of the lot, we have an excel function called MAXThe MAX Formula in Excel is used to calculate the maximum value from a set of data/array. It counts numbers but ignores empty cells, text, the logical values TRUE and FALSE, and text values.read more, which will return the maximum value of the supplied range of numbers. In VBA, we do not have any built-in function called “MAX” to get the maximum number. We will see how to use this Excel VBA Max function.

Table of contents
  • Excel VBA Max Function
    • Example of Max Function in Excel VBA
    • Advanced Example of Max in Excel VBA
    • Things to Remember
    • Recommended Articles

VBA Max

You are free to use this image on your website, templates, etc, Please provide us with an attribution linkArticle Link to be Hyperlinked
For eg:
Source: VBA Max (wallstreetmojo.com)

Example of Max Function in Excel VBA

Unfortunately, we do not have the luxury of using MAX as the VBA built-in function, but we can access this function as a part of the Worksheet function class.

Now, look at the code below.

Code:

Sub MAX_Example1()

    Dim a As Integer
    Dim b As Integer
    Dim c As Integer

    Dim Result As Integer

    a = 50
    b = 25
    c = 60

    Result = WorksheetFunction.Max(a, b, c)

    MsgBox Result

End Sub

VBA MAX Example 1

We have declared three variables to store the number in the above example.

Dim a As Integer

Dim b As Integer

Dim c As Integer

We have declared one more variable to show the results.

Dim Result As Integer.

For the first 3 three variables, we assigned values like 50, 25, and 60, respectively.

a = 50

b = 25

c = 60

In the next line, we have applied the MAX as a VBA worksheet functionThe worksheet function in VBA is used when we need to refer to a specific worksheet. When we create a module, the code runs in the currently active sheet of the workbook, but we can use the worksheet function to run the code in a particular worksheet.read more class to store the result to the variable “Result.”

Result = WorksheetFunction.Max(a, b, c)

So finally, we are showing the value in the message box in VBAVBA MsgBox function is an output function which displays the generalized message provided by the developer. This statement has no arguments and the personalized messages in this function are written under the double quotes while for the values the variable reference is provided.read more.

MsgBox Result

We will run this code using F5 or manually and see the result in the message box.

VBA MAX Example 1-1

So, the result is 60.

From all the supplied numbers: 50, 25, and 60, the maximum number is 60.

Advanced Example of Max in Excel VBA

Loops are crucial in VBA to run through all the cells and arrive at the result. We will see how to combine VBA MAX with loops to arrive at the maximum value from the list of numbers.

We have a list of items and the monthly sales performance of those items, as shown below.

Example 2

Now for each item, we want to know the maximum sale number across four months, as shown in the picture.

By applying MAX to Excel, we can find this in a few seconds.

Example 2-1

We will now see how to find the maximum value using the VBA code.

The below code will perform the task of finding the maximum number for each item.

Code:

Sub MAX_Example2()

    Dim k As Integer

    For k = 2 To 9
        Cells(k, 7).Value = WorksheetFunction.Max(Range("A" & k & ":" & "E" & k))
    Next k

End Sub

Example 2-2

It will identify the maximum number easily.

Run the code manually or press the F5 key to see the result below.

VBA MAX Example 2-3

To get the maximum values month name, use the below code.

Code:

Sub MAX_Example2()

    Dim k As Integer

    For k = 2 To 9
        Cells(k, 7).Value = WorksheetFunction.Max(Range("B" & k & ":" & "E" & k))
        Cells(k, 8).Value = WorksheetFunction.Index(Range("B1:E1"), WorksheetFunction.Match _
                        (Cells(k, 7).Value, Range("B" & k & ":" & "E" & k)))
    Next k

End Sub

Example 2-4

Based on the value provided by the VBA max function, the INDEX functionThe INDEX function in Excel helps extract the value of a cell, which is within a specified array (range) and, at the intersection of the stated row and column numbers.read more & MATCH functionThe MATCH function looks for a specific value and returns its relative position in a given range of cells. The output is the first position found for the given value. Being a lookup and reference function, it works for both an exact and approximate match. For example, if the range A11:A15 consists of the numbers 2, 9, 8, 14, 32, the formula “MATCH(8,A11:A15,0)” returns 3. This is because the number 8 is at the third position.
read more
will return the associated month in the next line.

VBA MAX Example 2-5

Things to Remember

  • If their duplicate number is there, it will show only one number which comes first.
  • It is the opposite formula of the MIN function in excelIn Excel, the MIN function is categorized as a statistical function. It finds and returns the minimum value from a given set of data/array.read more.
  • The MAX function is not a VBA function. However, it is a built-in function in Excel, so use the worksheet function class.

You can download this Excel Template here – VBA Max Function Template.

Recommended Articles

This article has been a guide to VBA Max. Here, we learn how to use the Max function in VBA to find the maximum value from a supplied range of numbers, along with examples and downloadable codes. Below are some useful Excel articles related to VBA: –

  • VBA FileCopy
  • VBA Debug Print
  • VBA FileSystemObject
  • ByRef in VBA
  • VBA Find and Replace

The easiest way to retrieve the maximum (I can think of) is iterating through the array and comparing the values. The following two functions do just that:

Option Explicit

Public Sub InitialValues()

Dim strValues(1 To 3) As String

strValues(1) = 3
strValues(2) = "af"
strValues(3) = 6

Debug.Print GetMaxString(strValues)
Debug.Print GetMaxNumber(strValues)

End Sub

Public Function GetMaxString(ByRef strValues() As String) As String

Dim i As Long

For i = LBound(strValues) To UBound(strValues)
    If GetMaxString < strValues(i) Then GetMaxString = strValues(i)
Next i

End Function

Public Function GetMaxNumber(ByRef strValues() As String) As Double

Dim i As Long

For i = LBound(strValues) To UBound(strValues)
    If IsNumeric(strValues(i)) Then
        If CDbl(strValues(i)) > GetMaxNumber Then GetMaxNumber = CDbl(strValues(i))
    End If
Next i

End Function

Note, that each time a string (text) array is passed to the function. Yet, one function is comparing strings (text) while the other is comparing numbers. The outcome is quite different!

The first function (comparing text) will return (with the above sample data) af as the maximum, while the second function will only consider numbers and therefore returns 6 as the maximum.


You can use the following basic syntax to calculate the max value in a range using VBA:

Sub MaxValue()
    Range("D2") = WorksheetFunction.Max(Range("B2:B11"))
End Sub

This particular example calculates the max value in the range B2:B11 and assigns the result to cell D2.

If you would instead like to display the max value in a message box, you can use the following syntax:

Sub MaxValue()
    'Create variable to store max value
    Dim maxValue As Single
    
    'Calculate max value in range
    maxValue = WorksheetFunction.Max(Range("B2:B11"))
    
    'Display the result
    MsgBox "Max Value in Range: " & maxValue 
End Sub

The following examples shows how to use each of these methods in practice with the following dataset in Excel that contains information about various basketball players:

Example 1: Calculate Max Value of Range Using VBA and Display Results in Cell

Suppose we would like to calculate the max value in the points column and output the results in a specific cell.

We can create the following macro to do so:

Sub MaxValue()
    Range("D2") = WorksheetFunction.Max(Range("B2:B11"))
End Sub

When we run this macro, we receive the following output:

Notice that cell D2 contains a value of 43.

This tells us that the max value in the points column is 43.

Example 2: Calculate Max Value of Range Using VBA and Display Results in Message Box

Suppose we would instead like to calculate the max value in the points column and output the results in a message box.

We can create the following macro to do so:

Sub MaxValue()
    'Create variable to store max value
    Dim maxValue As Single
    
    'Calculate max value in range
    maxValue = WorksheetFunction.Max(Range("B2:B11"))
    
    'Display the result
    MsgBox "Max Value in Range: " & maxValue 
End Sub

When we run this macro, we receive the following output:

VBA find max value in range

The message box tells us that the max value in the range B2:B11 is 43.

Note that in this example we calculated the max value in the range B2:B11.

However, if you’d like to instead calculate the max value in an entire column you could type B:B instead.

This will calculate the max value in all of column B.

Additional Resources

The following tutorials explain how to perform other common tasks in VBA:

VBA: How to Calculate Average Value of Range
VBA: How to Count Number of Rows in Range
VBA: How to Sum Values in Range

Trase



Ученик

(148),
закрыт



12 лет назад

Даны 10 неравных между собой чисел (каждое хранится в своей переменной). Нужно составить алгоритм, который бы определил наибольшее из этих чисел и записал бы их в порядке убывания в коллекцию (или текстбокс, или в переменную). Вариант с массивами по возможности не предлагать (хотя тоже подойдёт).

Удачник

Высший разум

(141032)


12 лет назад

Ну просто наибольшее просто, но все равно без массива можно, но сложно
Max = A(1)
For i = 2 To 10
If A(i) > Max Then Max = A(i)
Next i
Text1.Text = Max
End

Без массива
будет тоже самое, только вместо цикла будет 9 операторов If
Max = A1
If A2 > Max Then Max = A2
If A3 > Max Then Max = A3

If A10 > Max Then Max = A10

А если нужна полная сортировка, тогда уже смотри алгоритмы, например “пузырек”

Добавить комментарий