【问题标题】:How to Subtract the Values in Two Defined Ranges as below picture?如何减去两个定义范围内的值,如下图?
【发布时间】:2013-10-24 17:50:18
【问题描述】:

我有两个范围如下

Dim onedl, twodl As Range
Dim lastrow as long

Set oned1 = xl.ThisWorkbook.Sheets(1).Range("C5:C" & lastrow)
Set twod1 = xl.ThisWorkbook.Sheets(1).Range("F5:F" & lastrow)
lastrow = xl.ThisWorkbook.Sheets(1).Cells(Rows.Count, 2).End(xlUp).Row

我可以从 Range("I5:I" & lastrow) 中减去这两个范围并计算值吗,类似于 (twod1 - oned1) 来填充。

【问题讨论】:

    标签: vba excel range subtraction


    【解决方案1】:

    有了这么简单的东西,你可以写 =F5-C5 并拖动,但是 VBA:

    Range("I5").FormulaR1C1 = "=IF(RC[-3]="""","""",RC[-3]-RC[-6])"
    Range("I5").AutoFill Destination:=Range("I5:I" & lastrow), Type:=xlFillDefault
    

    另外,你的“lastrow”声明应该放在第一位,否则它不会知道“lastrow”是什么。

    编辑:这完全忽略了您正在尝试设置数组的事实(如果您正在尝试这样做)。如果这不是您想要的,请告诉我。

    【讨论】:

    • @Joe Laviano,感谢您的上述回答。但我的场景不同......正如你提到的,我正在尝试设置数组......只是因为......在“Class:Maths”之后,我从第18行开始有另一个带有“Class:Science”的表。另外,由于有多个表,我将进度表占用到下一张表......比如 xl.ThisWorkbook.Sheets(2).Range("C3").FormulaR1C1 = "=(xl.ThisWorkbook.Sheets(1 ).R5C6)-(xl.ThisWorkbook.Sheets(1).R5C3)"
    猜你喜欢
    • 1970-01-01
    • 2021-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多