我希望在excel中找到一个单词并突出显示该单元格。如何使用VBA进行操作。 我的代码突出显示整个表格。
这是代码 -
Sub Foreign_Lang_Converter()
Sheets("Sheet2").Select
Value = 0
i = 1
Do While (Cells(i, 2) <> "")
Value = Value + 1
i = i + 1
Loop
Count = 0
For j = 1 To Value
a = Cells(j, 1)
b = Cells(j, 2)
Sheets("Sheet1").Select
Cells.Select
Selection.Find What:=a
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent6
.TintAndShade = 0.599993896298105
.PatternTintAndShade = 0
End With
Selection.Replace What:=a, Replacement:=b
Sheets("Sheet2").Select
Next j
End Sub
答案 0 :(得分:1)
首先,read this。
编辑:这不是您的整体任务的解决方案,但我会将其保留,因为它是您使用原始代码描述的问题的解决方案(它将整个工作表着色)。
这里的问题是Selection.Find What:=a
没有改变选择,它会返回一个范围(无处可去)。由于仍然选择了整个纸张,因此接下来的步骤将整个纸张着色。尝试
With Sheets("Sheet1").Cells.Find(a)
With .Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent6
.TintAndShade = 0.599993896298105
.PatternTintAndShade = 0
End With
.Value = b
End With
这只会替换一次。查看.FindNext
方法或条件格式。此外,设置其他搜索参数(LookIn
,LookAt
,SearchOrder
和MatchByte
)可能会更好,因为它们会被保存。 (见评论here)
编辑:固定代码。现在应该工作。
答案 1 :(得分:0)
我得到了决议,
代码就像 -
0x000000000286fd5e: shl $0x8,%edx