Excel 通过VLookup提高macor效率?

Excel 通过VLookup提高macor效率?,excel,vba,vlookup,Excel,Vba,Vlookup,我一直在尝试使用VBA代码拼凑一份功能性工作簿 我目前创建了一个宏,它查看列中的动态值范围,并将它们转换为新值 Sub ConvertWireSize() Dim i As Long Sheets("Circuits").Select Range("H1").Select For i = 1 To Rows.Count If Cells(i, 8).Value = 0.5 Then Cells(i, 8).Value = 20 ElseIf Cells(i, 8)

我一直在尝试使用VBA代码拼凑一份功能性工作簿

我目前创建了一个宏,它查看列中的动态值范围,并将它们转换为新值

Sub ConvertWireSize()
Dim i As Long
Sheets("Circuits").Select
Range("H1").Select
For i = 1 To Rows.Count
    If Cells(i, 8).Value = 0.5 Then
        Cells(i, 8).Value = 20
    ElseIf Cells(i, 8).Value = 0.8 Then
        Cells(i, 8).Value = 18
    ElseIf Cells(i, 8).Value = 1 Then
        Cells(i, 8).Value = 16
    ElseIf Cells(i, 8).Value = 2 Then
        Cells(i, 8).Value = 14
    ElseIf Cells(i, 8).Value = 3 Then
        Cells(i, 8).Value = 12
    ElseIf Cells(i, 8).Value = 5 Then
        Cells(i, 8).Value = 10
    ElseIf Cells(i, 8).Value = 8 Then
        Cells(i, 8).Value = 8
    ElseIf Cells(i, 8).Value = 13 Then
        Cells(i, 8).Value = 6
    ElseIf Cells(i, 8).Value = 19 Then
        Cells(i, 8).Value = 4
      End If
Next i

MsgBox "Wire Size Has Been Converted From CSA to AWG."

Sheets("Main").Select

End Sub
这似乎是一种非常低效、缓慢的做事方式。 我一直在尝试拼凑一个新的宏,它将使用
VLookup
,但是我做的研究越多,我就越困惑


有人能帮我指出正确的方向吗?

不要转到第1048576行,只要H列中的值延伸到最远。使用精选案例清理您的IFs

我无法确定转换的线性模式,但您可以调整一些数学来完成每个转换


如果您要转换的数量超过几千个,那么内存中的阵列将显示出明显的效率提高。

非常感谢。这大大提高了宏的执行速度。
Sub ConvertWireSize()
    Dim i As Long
    with workSheets("Circuits")
        For i = 1 To .cells(.Rows.Count, "H").end(xlup).row
            select case .Cells(i, 8).Value2
                case  0.5
                    .Cells(i, 8).Value = 20
                case  0.8
                    .Cells(i, 8).Value = 18
                case  1
                    .Cells(i, 8).Value = 16
                ...
             end select
        Next i
    end with

    MsgBox "Wire Size Has Been Converted From CSA to AWG."

    workSheets("Main").Select   
End Sub