Vba 如何减去两个定义范围内的值,如下图所示?

Vba 如何减去两个定义范围内的值,如下图所示?,vba,excel,range,subtraction,Vba,Excel,Range,Subtraction,我有两个范围如下 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(x

我有两个范围如下

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

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

使用简单的方法,您可以只写=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,谢谢你的上述回答。但我的情况不同。。。正如你提到的,我正在尝试设置阵列。。。只是因为。。。在“班级:数学”之后,我有另一张表格,从第18排开始写着“班级:科学”。另外,由于有多个表格,我将把进度表带到下一页。。。类似于xl.ThisWorkbook.Sheets(2).Range(“C3”).FormulaR1C1=“=(xl.ThisWorkbook.Sheets(1.R5C6)-(xl.ThisWorkbook.Sheets(1.R5C3)”