将公式插入可变行数

时间:2012-07-10 10:53:17

标签: excel vba excel-vba

到目前为止,我已经设法创建了一个搜索功能,可以扫描列并收集数组中的行。然后我在另一张表中打印数组以形成一个表。我这样做有很多标准,这意味着我得到了不同大小的不同数组。

对于我的问题。我想为每一行做一个计算。 ActiveCell.FormulaR1C1 =" = TRUNC ((RC [-5], RC [-1]) / 7) "。如何创建一个适应有多少行的循环。在某些地方也存在差距。

以下是如何打印一个数组的示例:

For i = 1 To nS - 1
        Sheets("DataSheet").Select
        Union(Sheets("raw_list").Cells(arrStart(i), NameCol), Sheets("raw_list").Cells(arrStart(i), PhaseCol), Sheets("raw_list").Cells(arrStart(i), ToStartCol), Sheets("raw_list").Cells(arrStart(i), ToDefineCol), Sheets("raw_list").Cells(arrStart(i), ToMeasureCol), Sheets("raw_list").Cells(arrStart(i), ToAnalyseCol), Sheets("raw_list").Cells(arrStart(i), ToImproveDevCol), Sheets("raw_list").Cells(arrStart(i), ToImproveIndCol), Sheets("raw_list").Cells(arrStart(i), ToControlCol), Sheets("raw_list").Cells(arrStart(i), ToClosedCol)).Copy
        Cells(r, 1).Select
        ActiveSheet.Paste
        With Selection.Interior
            .Pattern = xlNone
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
        r = r + 1
    Next

感谢任何帮助!

编辑:添加了一张图片以显示它的外观。 enter image description here

1 个答案:

答案 0 :(得分:2)

如果存在差距,我们在工作中使用的是一种简单但不那么优雅的解决方案,即在相邻列中添加某种标记。例如,我们在同一行的单元格中添加“END”或类似的东西,但col + 1或col - 1添加到您要比较的列中。

另一个解决方案是查看下一个元素是否也是空白,但只有在您有单个空白时才会起作用。

最后,我看到的最后一个解决方案是,当你处于空白状态时,使用xlDown,如果你在2003年的最后一个单元格65535和2007年接近一百万,如果我的记忆正确,那么你就完成了。