Challenge 2: A Fully-Qualified For Each Price Increase — Solution Walkthrough Option Explicit Sub IncreasePrices() Dim cell As Range For Each cell In Worksheets("Prices").Range("B2:B20") cell.Value = cell.Value * 1.1 Next cell End Sub WHY THIS WORKS AS AN ANSWER ------------------------------ Dim cell As Range declares a variable that will represent, one at a time, each individual cell the loop visits. For Each cell In Worksheets("Prices").Range("B2:B20") loops directly over every one of the 19 cells in that range — no counter variable needed, since For Each hands you each cell object in turn automatically. cell.Value = cell.Value * 1.1 reads the cell's own CURRENT value, multiplies it by 1.1, and writes the result straight back into that same cell — a 10% increase applied in place. The key requirement this exercise specifically tests — fully qualifying every reference — is satisfied by writing Worksheets("Prices").Range("B2:B20") explicitly, rather than just Range("B2:B20") on its own. Because the sheet name is stated directly in the loop's own range expression, every cell object the loop produces already belongs to the Prices worksheet specifically; there is no unqualified Range or Cells call anywhere in this procedure that could silently default to whatever sheet happens to be active when it runs. Notes: - This is the direct antidote to this chapter's own warning box: had the loop instead read "For Each cell In Range("B2:B20")" (with no worksheet named), the macro would still run without any error, but would silently increase prices on whichever sheet the user happened to have open at the time — not necessarily "Prices" at all.