Mastering Excel VBA Basics: Practical Applications

Introduction:

In the world of Excel VBA, understanding the fundamentals is essential. In this guide, we’ll explore practical applications of key Excel VBA concepts, including finding the second-highest value, summing values by color, deleting blank cells, and swapping values. These examples will provide a solid foundation for your Excel automation journey.

Finding the Second-Highest Value:

  • Scenario: You have a list of numbers, and you want to find the second-highest value.

Code:

Dim rng As Range, cell As Range
Dim highestValue As Double, secondHighestValue As Double

Set rng = Selection
highestValue = 0
secondHighestValue = 0

' Find Highest Value
For Each cell In rng
If cell.Value > highestValue Then highestValue = cell.Value
Next cell

' Find Second Highest Value
For Each cell In rng
If cell.Value > secondHighestValue And cell.Value < highestValue Then
secondHighestValue = cell.Value
End If
Next cell

MsgBox "Second Highest Value is " & secondHighestValue

Find Second Highest Value in Excel VBA

  • Result: This code will display the second-highest value found in the selected range.

Find Second Highest Value Result

Summing Values by Color:

  • Scenario: You’ve lent money to people, and you want to calculate how much money you still need to receive from those who owe you. Owing money is indicated by red font color.

Code:

Dim toReceive As Integer, i As Integer
toReceive = 0

For i = 1 To 12
If Cells(i, 1).Font.Color = vbRed Then
toReceive = toReceive + Cells(i, 1).Value
End If
Next i

Sum by Color in Excel VBA

  • Result: This code calculates and displays the total amount of money you’re yet to receive.

Sum by Color Result

Deleting Blank Cells:

  • Scenario: You want to remove blank cells from a range, shifting the non-blank cells to fill the gaps.

Code:

Dim counter As Integer, i As Integer
counter = 0

For i = 1 To 10
If Cells(i, 1).Value <> "" Then
Cells(counter + 1, 2).Value = Cells(i, 1).Value
counter = counter + 1
End If
Next i

Range("A1:A10").Value = ""
Range("A1:A10").Value = Range("B1:B10").Value
Range("B1:B10") = ""

Delete Blank Cells in Excel VBA

  • Result: This code deletes the blank cells in column A and shifts non-blank cells up.

Delete Blank Cells Result

Swapping Values:

  • Scenario: You want to swap the values of two cells in Excel.

Code:

Dim temp As Double
temp = Range("A1").Value
Range("A1").Value = Range("B1").Value
Range("B1").Value = temp

Swap Values in Excel VBA
  • Result: This code swaps the values of cells A1 and B1.
Swap Values Result

Conclusion:

Understanding these practical applications of Excel VBA fundamentals provides a solid basis for your Excel automation journey. Whether you need to find specific values, perform calculations, or manipulate cell contents, VBA can streamline your work. With this knowledge, you’ll be well-prepared to tackle various automation tasks in Excel, enhancing your productivity and efficiency.