Sub
Public Sub CalcThis2()
Dim inputDiap As Range, insp As Range, lube As Range, tigh As Range, repl As Range
Dim fStr$, fStrOut$, lRow&
With ActiveSheet
lRow = .[A1].SpecialCells(xlLastCell).Row
For i = 3 To lRow
fStrOut = ""
For Each iCell In .Cells(i, "I").Resize(1, 3)
fStr = IIf(InStr(iCell.Text, "I") > 0, Replace(UCase(iCell.Text), "I", "*" & .Cells(i, "E").Text & "+"), UCase(iCell.Text))
fStr = IIf(InStr(fStr, "L") > 0, Replace(fStr, "L", "*" & .Cells(i, "F").Text & "+"), fStr)
fStr = IIf(InStr(fStr, "T") > 0, Replace(fStr, "T", "*" & .Cells(i, "G").Text & "+"), fStr)
fStr = IIf(InStr(fStr, "R") > 0, Replace(fStr, "R", "*" & .Cells(i, "H").Text & "+"), fStr)
fStrOut = fStrOut & fStr
Next
fStrOut = Replace(fStrOut, "+*", "+1*")
Do While Right(fStrOut, 1) = "+"
fStrOut = Left(fStrOut, Len(fStrOut) - 1)
Loop
Do While Left(fStrOut, 1) = "+" Or Left(fStrOut, 1) = "*"
fStrOut = Mid(fStrOut, 2)
Loop
.Cells(i, "O") = Evaluate(Replace(fStrOut, ",", ".")) 'Evaluate(fStrOut)
Next i
End With
End Sub
For example it will not always be 120I10L in cell I9, it can becomes 200I20L or even 100I20L2R, then will it be a problem?
No, it won`t be a problem
But I got Run-time error '13': Type mismatch on line : CalcThat = Evaluate(Replace(fStrOut, ",","."))
Then try to use
CalcThat = Evaluate(fStrOut)
Bookmarks