标记 Excel 中两个单元格之间不同的字母
Mark letters that differ between two cells in Excel
给定两个单元格,每个单元格包含一个长度为 n(即 11)的字符串,我想将底部单元格中与顶部单元格不同的所有字母标记为红色粗体。
这是一个玩具示例:
为什么这有用?我需要将许多氨基酸序列相互比较,对于生物学家来说,这将是在 Excel 中可视化结果的好方法。
以下函数比较两个字符串,假设 'rngWord1' 为原始字符串,'rngWord2' 为要更改的字符串:
Sub comparetwostrings(rngWord1 As Excel.Range, rngWord2 As Excel.Range)
Dim l As Long
If rngWord1.Value <> rngWord2.Value Then
For l = 1 To Len(rngWord1.Value)
If Mid(rngWord1.Value, l, 1) <> Mid(rngWord2.Value, l, 1) Then
rngWord2.Characters(l, 1).Font.Color = vbRed
rngWord2.Characters(l, 1).Font.Bold = True
Else
rngWord2.Characters(l, 1).Font.Color = vbBlack
End If
Next l
End If
End Sub
为了 运行 函数,可以创建一个名为 CompareAllStrings
的命令按钮。在内部,一个范围被定义为循环,并执行成对的字符串比较。 'rng1'和'Offset'都需要根据具体的Excel布局进行调整:
Private Sub btnCompareAllStrings_Click()
Dim rng1 As Range, e As Range
Set rng1 = Range("B2:Z2")
For Each e In rng1
comparetwostrings e, e.Offset(1, 0)
comparetwostrings e.Offset(2, 0), e.Offset(3, 0)
Next
End Sub
给定两个单元格,每个单元格包含一个长度为 n(即 11)的字符串,我想将底部单元格中与顶部单元格不同的所有字母标记为红色粗体。
这是一个玩具示例:
为什么这有用?我需要将许多氨基酸序列相互比较,对于生物学家来说,这将是在 Excel 中可视化结果的好方法。
以下函数比较两个字符串,假设 'rngWord1' 为原始字符串,'rngWord2' 为要更改的字符串:
Sub comparetwostrings(rngWord1 As Excel.Range, rngWord2 As Excel.Range)
Dim l As Long
If rngWord1.Value <> rngWord2.Value Then
For l = 1 To Len(rngWord1.Value)
If Mid(rngWord1.Value, l, 1) <> Mid(rngWord2.Value, l, 1) Then
rngWord2.Characters(l, 1).Font.Color = vbRed
rngWord2.Characters(l, 1).Font.Bold = True
Else
rngWord2.Characters(l, 1).Font.Color = vbBlack
End If
Next l
End If
End Sub
为了 运行 函数,可以创建一个名为 CompareAllStrings
的命令按钮。在内部,一个范围被定义为循环,并执行成对的字符串比较。 'rng1'和'Offset'都需要根据具体的Excel布局进行调整:
Private Sub btnCompareAllStrings_Click()
Dim rng1 As Range, e As Range
Set rng1 = Range("B2:Z2")
For Each e In rng1
comparetwostrings e, e.Offset(1, 0)
comparetwostrings e.Offset(2, 0), e.Offset(3, 0)
Next
End Sub