Este programa simples fará o truque. Isso contém dois loops:
Para cada ws em ThisWorkbook.Worksheets
Isso é um pouco auto-explicativo. Isso percorrerá cada planilha na sua pasta de trabalho que contém esse código.
Dentro do loop acima, há outro "sub loop":
Para r = 2 Para lastRow (ws, "B")
Portanto, já sabemos do loop anterior que ws
é a planilha atual no "loop pai". r = 2 é a linha inicial (você pode alterar para r = 1 se NÃO tiver cabeçalhos de coluna). lastRow
é uma função que incluí no código abaixo para determinar automaticamente a última linha em qualquer coluna (no seu caso, estamos usando a coluna 2 / coluna B).
O código a seguir foi testado e funciona:
Option Explicit
Sub changeRows()
Dim ws As Worksheet, r As Long
For Each ws In ThisWorkbook.Worksheets
ws.Activate
For r = 2 To lastRow(ws, "B")
If ws.Cells(r, 2) = "Clear Votive Cup" Then
ws.Cells(r, "H") = 1.49
End If
Next r
Next ws
End Sub
Function lastRow(ws As Worksheet, Optional col As Variant = 1) As Long
Debug.Print ws.Name
With ws
lastRow = .Cells(.Rows.Count, col).End(xlUp).row
End With
End Function