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:

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