I do not understand why you delete a few rows. So I will ignore that for now.
I will assume, for this answer, that the rows to have been deleted have already been deleted. If we assume that, then all the rest can be done in a single code line using that solution way that we have often used of…. “
“ ….
This example is ignoring the row deleting.
has the beautiful one liner, the rest just shows you again how to develop a solution like that
Code: Select all
Sub liminal() ' https://eileenslounge.com/viewtopic.php?f=30&t=37179
' =IF(LEFT(CLEAN(A2);1)="*";MID(CLEAN(A2);2;LEN(CLEAN(A2))-1);"")
Let Range("Q2").Value = "=IF(LEFT(CLEAN(A2),1)=""*"",MID(CLEAN(A2),2,LEN(CLEAN(A2))-1),"""")"
' =IF(LEFT(CLEAN(A2);1)="+";MID(CLEAN(A2);2;LEN(CLEAN(A2))-1);"")
Let Range("R2").Value = "=IF(LEFT(CLEAN(A2),1)=""+"",MID(CLEAN(A2),2,LEN(CLEAN(A2))-1),"""")"
' =IF(LEFT(CLEAN(A2);1)="-";MID(CLEAN(A2);2;LEN(CLEAN(A2))-1);"")
Let Range("S2").Value = "=IF(LEFT(CLEAN(A2),1)=""-"",MID(CLEAN(A2),2,LEN(CLEAN(A2))-1),"""")"
End Sub
Sub standard()
Let Range("Q2").Value = Evaluate("=IF(LEFT(CLEAN(A2),1)=""*"",MID(CLEAN(A2),2,LEN(CLEAN(A2))-1),"""")")
Let Range("R2").Value = Evaluate("=IF(LEFT(CLEAN(A2),1)=""+"",MID(CLEAN(A2),2,LEN(CLEAN(A2))-1),"""")")
Let Range("S2").Value = Evaluate("=IF(LEFT(CLEAN(A2),1)=""-"",MID(CLEAN(A2),2,LEN(CLEAN(A2))-1),"""")")
End Sub
Sub stancial()
Let Range("Q2:Q19").Value = Evaluate("=IF(LEFT(CLEAN(A2:A19),1)=""*"",MID(CLEAN(A2:A19),2,LEN(CLEAN(A2:A19))-1),"""")")
Let Range("R2:R19").Value = Evaluate("=IF(LEFT(CLEAN(A2:A19),1)=""+"",MID(CLEAN(A2:A19),2,LEN(CLEAN(A2:A19))-1),"""")")
Let Range("S2:S19").Value = Evaluate("=IF(LEFT(CLEAN(A2:A19),1)=""-"",MID(CLEAN(A2:A19),2,LEN(CLEAN(A2:A19))-1),"""")")
End Sub
Sub stancially()
Dim Rng As Range: Set Rng = Range("A2:A19")
Let Range("Q2:Q19").Value = Evaluate("=IF(LEFT(CLEAN(" & Rng.Address & "),1)=""*"",MID(CLEAN(" & Rng.Address & "),2,LEN(CLEAN(" & Rng.Address & "))-1),"""")")
Let Range("R2:R19").Value = Evaluate("=IF(LEFT(CLEAN(" & Rng.Address & "),1)=""+"",MID(CLEAN(" & Rng.Address & "),2,LEN(CLEAN(" & Rng.Address & "))-1),"""")")
Let Range("S2:S19").Value = Evaluate("=IF(LEFT(CLEAN(" & Rng.Address & "),1)=""-"",MID(CLEAN(" & Rng.Address & "),2,LEN(CLEAN(" & Rng.Address & "))-1),"""")")
End Sub
Sub normal()
' =IF(LEFT(CLEAN(A2:A19);1)={"*","+","-"};MID(CLEAN(A2:A19);2;LEN(CLEAN(A2:A19))-1);"")
' Let Range("Q2:S19").FormulaArray = "=IF(LEFT(CLEAN(RC[-16]:R[17]C[-16]),1)={""*"",""+"",""-""},MID(CLEAN(RC[-16]:R[17]C[-16]),2,LEN(CLEAN(RC[-16]:R[17]C[-16]))-1),"""")"
Let Range("Q2:S19").FormulaArray = "=IF(LEFT(CLEAN(A2:A19),1)={""*"",""+"",""-""},MID(CLEAN(A2:A19),2,LEN(CLEAN(A2:A19))-1),"""")"
End Sub
Sub stanciAlanally()
Dim Rng As Range: Set Rng = Range("A2:A19")
' =IF(LEFT(CLEAN(A2);1)={"*","+","-"};MID(CLEAN(A2);2;LEN(CLEAN(A2))-1);"")
Let Range("Q2:S19").Value = Evaluate("=IF(LEFT(CLEAN(" & Rng.Address & "),1)={""*"",""+"",""-""},MID(CLEAN(" & Rng.Address & "),2,LEN(CLEAN(" & Rng.Address & "))-1),"""")")
End Sub