在VBA中从另一列中减去一列,出现不匹配错误?

问题描述

嗨,我正在尝试创建一个 VBA 代码,用 E 列 - F 列填充整个 G 列值(所以 E2-F2 = G2),但我不断收到不匹配错误。值从第二行开始,我创建了一个循环来运行列。

这是我目前的代码


Sub RemainingHours()

    Dim i As Integer
    i = 2    
With Sheets("Opt")
While Not IsEmpty(Cells(5,i).Value)
   Cells(7,i).Value = Cells(6,i).Value - Cells(5,i).Value
    i = i + 1
    Wend
End With

End Sub

谢谢!

解决方法

您可以尝试使用 Evaluate,而不是循环。

Sub RemainingHours()
Dim rng As Range
Dim Res As Variant

    With Sheets("Opt")
        Set rng = .Range("E2",.Range("E" & Rows.Count).End(xlUp))
    End With

    
    Res = Evaluate(rng.Offset(,1).Address & "-" & rng.Address)
    
    rng.Offset(,2).Value = Res

End Sub