excel - 使用 2 个不相邻的列
问题描述
我正在尝试构建一个宏来比较两列以查看它们是否相同。这就是功能。
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 表末尾的新列中,请使用 Find 和 xlPrevious 和 xlByColumns 来定位最后使用的列,然后偏移 1。
推荐阅读
- django - Django模型-每个父引用的子表元素的自动增量ID
- android - android数据绑定的问题
- mysql - 字段中的MySQL唯一哈希?
- python - 我们可以使用 float32 类型的数据计算来模拟 float64 数据中的噪声吗?
- apache - 无法在 windows 服务器中启动 apache tomcat 服务
- javascript - Windows.location.reload() 在 hostgator 中托管的 react js 应用程序中不起作用
- python - 尝试将 CSV 加载到 JSON 格式。似乎只在 JSON 中指定了 CSV 的最后一行
- java - Spring Security OAuth2 在 REST 服务上被拒绝访问
- java - 有没有办法在 log4j 模式中指定当前行号
- opentbs - 在 OpenTBS 演示中,图像被替换,这是在哪里完成的?