【问题标题】:Subtracting one column from another in VBA, getting mismatch error?在 VBA 中从另一列中减去一列,出现不匹配错误?
【发布时间】:2021-04-29 18:49:12
【问题描述】:

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

这是我目前的代码。


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

谢谢!

【问题讨论】:

  • 我认为您在 Cells 函数中切换了行和列。尝试所有出现的 Cells(i, #)。
  • 有效!非常感谢杰里米

标签: excel vba subtraction


【解决方案1】:

您可以尝试使用 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

【讨论】:

  • 注意:您将需要使用WorkSheets("Opt").Evaluate,否则它将使用活动工作表,该工作表可能是也可能不是正确的工作表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-07
  • 1970-01-01
  • 1970-01-01
  • 2016-04-30
  • 1970-01-01
  • 1970-01-01
  • 2020-04-01
相关资源
最近更新 更多