Eu não acho que você pode definir células específicas para não calcular. Você pode, no entanto, substituir temporariamente as fórmulas pelos valores reais em sua macro. Isso, na prática, teria o mesmo efeito. Há muitas maneiras de conseguir isso, aqui está uma ideia.
Faça uma planilha contendo todas as fórmulas do intervalo que você não deseja calcular, mas sem o =
, para que elas não sejam calculadas. Em seguida, na sua macro, você pode fazer isso para se livrar das suas fórmulas:
With Worksheets("sheetname").Range("A1:A100")
.Formula = .Value
End With
Isso é basicamente equivalente a copiar o intervalo e fazer um comentário em Colar Especial > > Valores.
A maneira como você obtém suas fórmulas de volta difere dependendo se todas as fórmulas são iguais ou não. Se eles são o mesmo uso:
With Worksheets("sheetname").Range("A1:A100")
.Formula = "=" & Worksheets("formulasheet").Range("A1:A100").Text
End With
Se eles forem diferentes, você pode percorrer todas as células assim:
Dim i&, firstrow&, lastrow&
Dim ws As Worksheet, formulaws As Worksheet
Set ws = Sheets("sheetname")
Set formulaws = Sheets("formulasheet")
firstrow = 1
lastrow = 100
For i = firstrow To lastrow
ws.Cells(i, 1).Formula = "=" & formulaws.Cells(i, 1).Value
Next i