如何在VBA中进行行计算以查看是否需要计算?

在Excel中,我就像新的VBA一样…现在我正在查看一个只有一行数据返回的计算有一些问题的macros(这会导致所有正在进行的行都填充N / A或#REF,因为计算被拖拽)

实际上,我期望做的是使用某种行数IF语句来确定计算是否应该被减less。

目前,代码如下所示:

Range("I7").Select ActiveCell.FormulaR1C1 = "=IF(RC[-2]=0,0,(RC[-1]/RC[-2])*10000)" Range("I7").Select Selection.Copy Range("I8").Select Range(Selection, Selection.End(xlDown)).Select ActiveSheet.Paste 

我想我需要做的是任何行数小于1的东西不会被拉下来,否则拉下列。

我以正确的方式接近这个吗? 有一个更简单的方法吗?

我不认为你需要行数。 我想你只需要将公式应用于第7行开始的所有单元格到最后一个已填充的行。 在我的例子中,我正在检查H列的最后一行。

下面是你如何做到这一点:

 Sub AddFormulaToColumn() Dim wb As Workbook Dim ws As Worksheet Dim rng As Range Dim lastRow As Long Set wb = ThisWorkbook Set ws = wb.Sheets("Sheet1") lastRow = Range("H" & ws.Rows.Count).End(xlUp).Row Set rng = ws.Range("I7:I" & lastRow) rng.Formula = "=IF(RC[-2]=0,0,(RC[-1]/RC[-2])*10000)" End Sub 

您可以通过将ws定义更改为要使用的工作表进行修改,如果最后一行在“H”以外的列中,那么也要对其进行修改。