excel - 两列的字符串比较不返回 If 语句结果
问题描述
我已经成功地让这个字符串比较适用于一列。我已将范围扩大到两列,并且在查看正在进行比较的本地窗口时会出现。由于某些原因,如果字符串比较为正,我无法破译 if 语句来更改单元格的颜色。
没有得到任何错误,但也没有得到任何响应。
我已经穿过并观看了本地窗口,我在那里观察到的一切都告诉我正在进行比较,所以我对可能缺少什么感到有些困惑。
Sub ColourDuplicateNameTwoCol() 'Work in progress
Dim baseName As Range
Dim allName As Range
Dim cell As Range
With ThisWorkbook.Worksheets("sheet1")
Set baseName = Range("c1")
Set allName = Range("a1:b7")
For Each cell In allName.cells
If StrComp(baseName.Value, cell.Value, vbTextCompare) = 1 Then
cell.Interior.Color = vbYellow
End If
Next cell
End With
End Sub
这是我提到的单列工作版本
Sub ColourDuplicateName() 'Works
Dim baseName As Range
With ThisWorkbook.Worksheets("sheet1")
Set baseName = .Range("b1")
For I = 1 To 7
If StrComp(baseName.Value, cells(I, 1).Value, vbTextCompare) = 1 Then
cells(I, 1).Interior.ColorIndex = 3
End If
Next I
End With
End Sub
解决方案
您对 from 的返回值的解释StrComp
不正确。检查 VBA 帮助。
Option Explicit
Sub ColourDuplicateNameTwoCol() 'Work in progress
Dim baseName As Range
Dim allName As Range
Dim cell As Range
With ThisWorkbook.Worksheets("sheet1")
Set baseName = .Range("c1")
Set allName = .Range("a1:b7")
For Each cell In allName.Cells
If StrComp(baseName.Value, cell.Value, vbTextCompare) = 0 Then
cell.Interior.Color = vbYellow
End If
Next cell
End With
End Sub
上面的代码仅显示了StrComp
您遇到的问题,不是很动态。您必须添加代码以删除颜色,然后将其添加回来,应该baseName
会更改。当然,您可以使用事件宏来执行此操作。
但是,更动态的方法是只设置条件格式。你只需要这样做一次,它就可以完成同样的事情。
要在 VBA 代码中执行此操作,例如:
Option Explicit
Sub ColourDuplicateNameTwoCol() 'Work in progress
Dim baseName As Range
Dim allName As Range
Dim cell As Range
With ThisWorkbook.Worksheets("sheet1")
Set baseName = .Range("c1")
Set allName = .Range("a1:b7")
End With
With baseName.FormatConditions
.Delete
.Add Type:=xlCellValue, _
Operator:=xlEqual, _
Formula1:=baseName
.Item(1).Interior.Color = vbYellow
End With
End Sub
FormatConditions
如果您有其他要allNames
保留的代码,则需要修改此代码。
推荐阅读
- matlab - 加快电影处理 matlab 的 vision.VideoFileReader 函数
- python-3.x - 为什么我不能将 nashpy 导入我的 Python 库?
- python - 在数据框单元格中添加超链接
- c# - 了解为什么我在 get 方法中遇到递归错误
- node.js - Node.js xlsx 获取非空行数
- python - 我的烧瓶应用程序无法运行时如何调试它?
- typescript - Twilio 可编程视频和 Ionic 3 - 音频问题
- ruby - logger gem 的 1.2.8 版本发生了什么变化?
- http - 单击图像时,如何将“来源”作为 favicon.ico 文件的引用者发送?
- python - 请求post在python中返回200,而postman返回201