繁体   English   中英

使用 2 个不相邻的列

[英]Getting 2 non-adjacent columns to work with

我正在尝试构建一个宏来比较两列以查看它们是否相同。 这就是功能。

Sub Compare()
Dim LastRow As Integer
LastRow = Worksheets("Sheet1").Range("A1048576").End(xlUp).Row 
For i=2 to LastRow
    If Range("A" & i).Value = Range("B" & i).Value Then
        Range("C" & i).Value = True
    Else
        Range("C" & i).Value = False
    End If
End Sub

现在硬编码比较 A 列和 B 列,然后将 True/False 输出到 C 列中。我想要做的是让用户从他们的 excel 表中只选择 2 列,然后运行这个宏,然后比较两个选定的列由用户。 这 2 列可以彼此不相邻,因此例如用户可以选择 A 列和 K 列来比较它们之间的值。

您需要检查非相邻列的 .Areas 属性。

Sub CompareTwo()
    dim rng as range, i as long
    set rng = intersect(selection, selection.parent.usedrange)

    if rng.areas.count>1 then
        for i=1 to rng.areas(1).rows.count
            rng.areas(2).cells(i).offset(0, 1) = cbool(rng.areas(1).cells(i).value = rng.areas(2).cells(i).value)
        next i
    else
        for i=1 to rng.rows.count
            rng.cells(i).offset(0, 2) = cbool(rng.cells(i).value = rng.cells(i).value)
        next i
    end if
End Sub

要将结果放在 Excel 工作表末尾的新列中,请使用带有 xlPrevious 和 xlByColumns 的 Find 来定位最后使用的列,然后偏移 1。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM