将一张纸上的Translatin字符串转换为循环中另一张表上的数字

时间:2018-02-15 15:15:41

标签: excel-vba vba excel

我目前正在尝试创建一个循环,将sheet1上的项目排名(低,中,高,极......)转换为表3中的数值,以便我可以对它们进行排名。

我目前正在将sheet3链接到sheet1以翻译值 =IF(Sheet1!B2 = "low",1,IF(Sheet1!B2="medium",2,IF(Sheet1!B2="high",2,...)

我想在循环中执行此操作,这样我只需按一下按钮就可以将sheet1上的所有值转换为sheet3。我的值范围从B列第2行到F列,我希望它为每个条目执行此操作,即使我添加更多。

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您在Sheet3单元格G2中输入了公式,则在计算A列中的行数后,以下代码会将公式添加到G列中的所有单元格中:

Sub foo()
    Dim ws As Worksheet: Set ws = Sheets("Sheet3")
    'declare and set your worksheet, amend as required
    LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    'get the last row with data on Column A
    ws.Range("G2:G" & LastRow).FormulaR1C1 = "=IF(Sheet1!RC[-5]=""low"",1,IF(Sheet1!RC[-5]=""medium"",2,IF(Sheet1!RC[-5]=""high"",3,IF(Sheet1!RC[-5]=""extreme"",4))))"
    'above enter the formula
    ws.Range("G2:G" & LastRow).Value = ws.Range("C2:C" & LastRow).Value
    'convert the formula to its value
End Sub