O Excel não funciona assim.
Se ambas as células tiverem fórmulas, não haverá onde obter um valor de entrada. É por isso que isso não funcionará com referências circulares.
Uma célula pode ter uma fórmula ou um valor. Se você inserir um valor em uma célula que tenha uma fórmula, a fórmula será sobrescrita. O que você está tentando alcançar exigirá pelo menos três células: uma célula de entrada para o valor, uma célula para a unidade e uma terceira célula para o resultado da conversão. Você pode até querer adicionar uma quarta célula para a unidade do resultado. Considere esta captura de tela:
O valor é inserido em B2, a unidade do valor é especificada em C2. A conversão é calculada em B3
=IF(C2="lbs",B2/2.2,B2*2.2)
A unidade do resultado é calculada em C3 com =IF(C2="Kgs","Lbs","Kgs")
, mas esse bit é opcional.
Editar:vocêpodeusaroVBAparaconverterovalorecolocá-lonaoutracélula.Issopodeserfeitosemescreverumafórmulanacélula,noentanto.SevocêjáusaoVBA,tambémpodefazerocálculonoVBAemvezdeusaroVBAparagravarumafórmulaemumacélula.AquiestáoVBAparaisso:
PrivateSubWorksheet_Change(ByValTargetAsExcel.Range)IfNotIntersect(Target,Range("A1:A2")) Is Nothing Then
If Target.Count = 1 Then
Application.EnableEvents = False
If Target.Row = 1 Then
Target.Offset(1, 0) = Target / 2.2
Else
Target.Offset(-1, 0) = Target * 2.2
End If
Application.EnableEvents = True
End If
End If
End Sub