0
A
回答
1
我能想到的最好的方法是使用VBA来改变字体的颜色。
Dim row As Integer
Dim str As String
Dim index As Integer
Dim rng As Range
lastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).row
Set rng = Range("A1")
For row = 1 To lastRow
str = rng.Offset(0, 1).Value
index = InStr(rng.Value, str)
If index > 0 Then rng.Characters(index).Font.Color = vbGreen
Set rng = rng.Offset(1, 0)
Next row
Set rng = Nothing
0
使用字典方法,并强调如果该键在字典中找到
Option Explicit
Sub HiglightColumn()
Dim MyWorkbook As Workbook
Dim MyWorksheet As Worksheet
Set MyWorkbook = Workbooks(ActiveWorkbook.Name)
Set MyWorksheet = MyWorkbook.Sheets("WorksheetName")
Dim LastRow As Long
Dim CurrentRow As Long
Dim myList As Object
Set myList = CreateObject("Scripting.Dictionary")
For CurrentRow = 2 To MyWorksheet.Cells(MyWorksheet.Rows.Count, "B").End(xlUp).row
myList.Item(Right(MyWorksheet.Range("B" & CurrentRow), 6)) = "new"
Next
For CurrentRow = 2 To MyWorksheet.Cells(MyWorksheet.Rows.Count, "A").End(xlUp).row
If myList.Exists(Right(MyWorksheet.Range("A" & CurrentRow), 6)) Then
With MyWorksheet.Range("A" & CurrentRow).Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 5287936
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Else
With MyWorksheet.Range("A" & CurrentRow).Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End If
Next CurrentRow
End Sub
+0
这假定要找到的“字符串”总是6个字符并且在列“A”的文本末尾 – EEM
0
此过程凸显了A
柱细胞和“加粗”(更好的词?)的字符串发现(见代码注释)
Option Explicit
Sub FindMatchAndMark_Interior()
Dim WshTrg As Worksheet
Dim lLastRowA As Long, lLastRowB As Long
Dim lRowA As Long, lRowB As Long
Dim sCllB As String
Dim bPos As Byte
Rem Set Target Worksheet - Update as needed
Set WshTrg = ActiveSheet
With WshTrg
lLastRowA = fLRng_LastRow_byCol_Find(.Columns(1))
lLastRowB = fLRng_LastRow_byCol_Find(.Columns(2))
Rem To Clear Prior Results
Range(.Cells(1, 1), .Cells(lLastRowA, 1)).Font.Bold = False
With Range(.Cells(1, 1), .Cells(lLastRowA, 1)).Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Rem Starting from Row 2 - Update as needed
For lRowA = 2 To lLastRowA
For lRowB = 2 To lLastRowB
sCllB = .Cells(lRowB, 2).Value2
bPos = InStr(.Cells(lRowA, 1).Value2, sCllB)
If bPos > 0 Then
Rem Fill Interior and Bold String Found
With .Cells(lRowA, 1)
.Characters(Start:=bPos, Length:=Len(sCllB)).Font.Bold = 1
.Interior.Color = RGB(155, 194, 230)
End With
Exit For
End If: Next: Next: End With
End Sub
Function fLRng_LastRow_byCol_Find(ColTrg As Range) As Long
On Error Resume Next
fLRng_LastRow_byCol_Find = ColTrg.Find(What:="*", _
After:=ColTrg.Cells(1), LookIn:=xlFormulas, LookAt:=xlPart, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious, _
MatchCase:=False, SearchFormat:=False).row
On Error GoTo 0
End Function
相关问题
- 1. B = A对B = A [:]在串|列出
- 2. excel sum列如果值x在列A或B和A不等于B
- 3. Excel循环列A动作列B
- 4. excel 2007,在列C中赋值,列A与列B匹配
- 5. Excel:列C中未列出B列中的列值A
- 6. 如何使用jQuery从a,b,b重新排列div到a,b,a,b?
- 7. 从列表中检索列表B A
- 8. PHP变换阵列'a','b','c'到'a/b/c','a/b','a'
- 9. 与列A和列B
- 10. GROUP BY A列或B列
- 11. 列A包含B列
- 12. 我想从['a','b','c']将python列表变成['a','a','b',b','c','c']
- 13. SqlAlchemy如何查询列A == a和B == b和A == b和B == a
- 14. 功能型的( 'A - >' B)列表 - > 'A - >' b在OCaml的列表
- 15. 表A的列a到表B的列b的SQL拷贝值
- 16. 给定一个(A * B)列表,返回(A * B列表)名单
- 17. Excel:在A和B之间填充列C
- 18. 在Excel电子表格中包含两列A和B如何从列中删除重复的条目。 B'
- 19. 如果表A的列A等于表B的列B,则从两个表(表A和表B)获得输出
- 20. 有2个表格,A(列a)和B(列b)。我想查找表A列a列中每个值的出现次数b列表b
- 21. Excel(宏)如何保存列B与列A文件名
- 22. Excel:如果列B等于值,编辑A列
- 23. Excel - CountIfs(A列有目标值,B列空白)
- 24. 列A中的Excel Countif日期大于B列
- 25. 将列B,C,D ..中的数据移动到列A - excel
- 26. Excel公式如果x列B然后y,Z,K..etc列A
- 27. 从{a-b,b-c,c-a}改变为{(a,b),(b,c),(c,a)}?
- 28. 从表A到表B加入两列
- 29. SQL:添加从B表列表A
- 30. Excel - 在列A中查找重复项并将值移到列B
在您的示例中,您将显示a和b中突出显示的所有已填充单元格。您想要突出显示A或B的单元格? – Brino
对不起,我要突出显示A列 –
请更新您的照片,以显示哪些单元格应该突出显示。具体来说,它是检查子集是否在它旁边的单元格中(即同一行),还是检查'B'中的值是否包含子集? –