1

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

对于我的问题。我想为每一行做一个计算。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

感谢您的帮助!

编辑:添加了一张图片以显示它的外观。 在此处输入图像描述

4

1 回答 1

2

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

另一种解决方案是查看下一个元素是否也是空白,但这仅在您有单个间隙时才有效。

最后,我看到的最后一个解决方案是,当您处于空白状态时,使用 xlDown 并且如果您在 2003 年位于最后一个单元格 65535 并且在 2007 年接近 100 万个单元格,如果我没记错的话,那么您就完成了。

于 2012-07-10T11:15:35.433 回答