【发布时间】:2022-01-23 10:14:38
【问题描述】:
我有一个超过 5 列的 Excel 文件,其中单元格值为 TRUE 和 FALSE。需要在列之间进行比较,如果每列中的所有单元格值为 TRUE,则在第 6 列单元格中输入“无变化”。
| 1 || 2 || 3 || 4 || 5 || 6 |
|:---- ||:---- ||:---- ||:---- ||:---- ||:---- |
| TRUE ||TRUE ||TRUE ||TRUE ||TRUE ||NO CHange |
如果这 5 列中的任何单元格的值为 FALSE,则需要知道哪一列(第 2 列或第 3 列或第 5 列)
| 1 || 2 || 3 || 4 || 5 || 6 |
|:---- ||:---- ||:---- ||:---- ||:---- ||:------------- |
|TRUE ||FALSE ||TRUE ||TRUE ||TRUE ||Change in 2nd |
或
| 1 || 2 || 3 || 4 || 5 || 6 |
|:---- ||:---- ||:---- ||:---- ||:---- ||:--------------- |
|TRUE ||FALSE ||TRUE ||FALSE ||TRUE ||Change in 2 and 4 |
这可能吗?
不确定这是否正确!
Sub Checking()
Dim i as Integer
For i=2 to $lastrow
If (cell(i,1).value = cell(i,2).value = cell(i,3).value = cell(i,4).value = cell(i,5).value = "TRUE") Then
cell(i,"6").value = "No Change"
Else
If (cell(i,1).value = "FALSE") Then
cell(i,6).value = "1 Changed"
End If
If (cell(i,2).value = "FALSE") Then
cell(i,6).value = "2 Changed"
End If
If (cell(i,3).value = "FALSE") Then
cell(i,6).value = "3 changed"
End If
If (cell(i,4).value = "FALSE") Then
cell(i,6).value = "4 Changed"
End If
If (cell(i,5).value = "FALSE") Then
cell(i,6).value = "5 Changed"
End If
Next Cell
End Sub
【问题讨论】:
-
到目前为止你尝试过什么代码?你在哪里遇到了麻烦?请在您的问题中包含这一点。
-
是的,这是可能的,但我们不是代码编写服务,所以请向我们展示您的代码并告诉我们您的问题。
-
已更新! @RaymondWu!请检查
-
@ConanEdugawa 也许您想解释一下您的代码是如何不起作用的?你的代码甚至无法编译(
$lastrow是一个无效的变量名.. 它是Cells(x,y).. 不是Cell(x,y)) -
另外,
Next i,不是Next Cell