【问题标题】:Compare and working with multiple rows excel vba比较和处理多行excel vba
【发布时间】:2014-07-08 01:31:31
【问题描述】:

这里相对较新..我正在使用 Excel VBA 宏并设法解决了我的大部分问题,但我被一个特定的部分卡住了。

我想计算各行之间的差异。

想象一个数据集在第 1、2、3 列中有 a、b、c、d、e 行和数值。我想计算 a1 和 (b1, c1, d1, e1) 之间的差异和b1 和 (c1, d1, e1) 之间的差异以及 c1 和 (d1, e1) 之间的差异以及 d1 和 e1 之间的差异。第 2 列和第 3 列也是如此。

我设法让它针对第 1 列中的所有其他行运行 a1,但我无法弄清楚第 1 列中其他比较的循环以及跳转到第 2 列和第 3 列。

希望有人能帮忙!

非常感谢!

史蒂夫


Sub nABCXX()
Dim lastcol As Integer

lastcol = Cells(4, Columns.Count - 3).End(xlToLeft).Column

For x = 4 To Cells(Rows.Count, 3).End(xlUp).Row
For j = 3 To Cells(3, Columns.Count - 3).End(xlToLeft).Column
For I = 4 To Cells(Rows.Count, 3).End(xlUp).Row

Cells(I + 1, j + lastcol + 5).Value = (Abs(Cells(x, j) - Cells(I + 1, j)))

Next I
Next j
Next x

结束子


我看到两个主要问题,首先,上面的语法计算了第 4 行和所有其他行之间的差异 - 不完全是我想要的。 但我想计算的是我表中所有行之间的差异。一列就足够了,但逐列是理想的。

固定计算的列之间的跳转(仅第 4 行)工作得很好。但是当我有多行比较和多列时该怎么做呢?

感谢您的帮助! 史蒂夫

【问题讨论】:

  • 您好,欢迎您。发布您当前拥有的内容,并具体确定其中的哪些部分缺少或不工作。相应地修改问题,因为它是题外话。
  • 显示您当前拥有的内容,我们将为您指明方向。这是考虑受计数器限制的循环的一个很好的练习。
  • 感谢您的反馈,我在上面添加了代码!

标签: excel vba loops rows


【解决方案1】:

虽然对 OP 来说太晚了,但注意到我的提要上弹出这个没有答案 - 所以以防万一它对其他人有帮助...

代替 3x For 循环,也许可以使用带有嵌套 Do While 循环的 For 循环

例如,将表格想象成类似的东西

带有标题行/列,您要添加的数字,然后是您将在差异中写入的单元格。

宏可以像这样工作:

Dim LastRow As Integer, LastCol As Integer, EntryRow As Integer
Dim dbDiff As Double

首先计算要循环的总行数和列数

LastRow = Me.Cells(Me.Rows.Count, "B").End(xlUp).Row
LastCol = Me.Cells(1, Me.Columns.Count).End(xlToLeft).Column

外部:此循环贯穿列

For i = 2 To LastCol
    n = 2
    EntryRow = LastRow + 1

内部:此循环更改要比较的初始行(即 a-b、a-c 等的“a”行)

    Do While n < LastRow + 1
        m = n + 1

最内层:这个循环改变了与上面的初始行进行比较的行

        Do While m < LastRow + 1    'loops compare row n2
            dbDiff = Abs(Cells(n, i).Value - Cells(m, i))
            Cells(EntryRow, i).Value = dbDiff
            m = m + 1
            EntryRow = EntryRow + 1
            Loop
        n = n + 1
        Loop
    Next i

也许?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-27
    • 2013-08-27
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2023-03-30
    • 2020-09-02
    • 2022-09-23
    相关资源
    最近更新 更多