Vba 查找并高亮显示宏并确认
我下面有一个宏,它非常适合查找数字并确认它是否正确(然后突出显示)。首先它会询问您要找的号码,然后输入号码并点击OK。然后,如果它找到了号码,那么你将有机会说“是”或“否”或“取消”(以防它们是你正在寻找的多个号码,而不是正确的号码)。如果单击“是”,它将突出显示单元格 问题是:Vba 查找并高亮显示宏并确认,vba,excel,highlight,Vba,Excel,Highlight,我下面有一个宏,它非常适合查找数字并确认它是否正确(然后突出显示)。首先它会询问您要找的号码,然后输入号码并点击OK。然后,如果它找到了号码,那么你将有机会说“是”或“否”或“取消”(以防它们是你正在寻找的多个号码,而不是正确的号码)。如果单击“是”,它将突出显示单元格 问题是: 如果要查找的号码不在工作表上,则宏将出错 如果你点击“否”,我希望它寻找下一个号码,如果他们没有下一个号码,那么就退出。(此按钮也可以称为“下一步”,因为它更准确地描述了情况 任何帮助都将不胜感激!谢谢 Sub fin
Sub find_highlight()
Dim w As Variant
Dim FoundCell As Range
Dim ans As String
Do
w = InputBox("What to find?")
Cells.Find(What:=(w), After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False).Activate
Select Case MsgBox("Is this the number?", vbYesNoCancel)
Case vbNo
Case vbYes
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Case vbCancel
Exit Do
End Select
Loop
End Sub
你真的应该把这篇文章分成多篇。请每篇文章出一个问题 至于您看到的错误:您必须检查错误条件
Sub find_highlight()
Dim w As Variant
Dim FoundCell As Range
Dim ans As String
Do
w = InputBox("What to find?")
On Error Resume Next
thisRng1 = ActiveCell.Address
Cells.Find(What:=(w), After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False).Activate
thisRng2 = ActiveCell.Address
If thisRng1 = thisRng2 Then
MsgBox "Value Not Found"
End If
On Error GoTo 0
Select Case MsgBox("Is this the number?", vbYesNoCancel)
Case vbNo
Case vbYes
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Case vbCancel
Exit Do
End Select
Loop
End Sub
你真的应该把这篇文章分成多篇。请每篇文章出一个问题 至于您看到的错误:您必须检查错误条件
Sub find_highlight()
Dim w As Variant
Dim FoundCell As Range
Dim ans As String
Do
w = InputBox("What to find?")
On Error Resume Next
thisRng1 = ActiveCell.Address
Cells.Find(What:=(w), After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False).Activate
thisRng2 = ActiveCell.Address
If thisRng1 = thisRng2 Then
MsgBox "Value Not Found"
End If
On Error GoTo 0
Select Case MsgBox("Is this the number?", vbYesNoCancel)
Case vbNo
Case vbYes
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Case vbCancel
Exit Do
End Select
Loop
End Sub
以下代码:
- 允许用户通过不提供要搜索的值来退出过程
- 查找“值”而不是“公式”(只是因为我怀疑您希望搜索公式的结果,而不是公式本身-即,如果您的公式
,则如果用户正在搜索=5+4
,而不是他们正在搜索9
,则您希望匹配它)4
- 在执行测试以确保匹配发生之前,不要尝试
,以避免在未发生匹配时尝试激活匹配发生的单元格时出现的错误激活
- 如果用户经常说“否”而返回到第一个匹配项,则退出对值的搜索
以下代码:
- 允许用户通过不提供要搜索的值来退出过程
- 查找“值”而不是“公式”(只是因为我怀疑您希望搜索公式的结果,而不是公式本身-即,如果您的公式
,则如果用户正在搜索=5+4
,而不是他们正在搜索9
,则您希望匹配它)4
- 在执行测试以确保匹配发生之前,不要尝试
,以避免在未发生匹配时尝试激活匹配发生的单元格时出现的错误激活
- 如果用户经常说“否”而返回到第一个匹配项,则退出对值的搜索
MSDN是一个很好的资源!当它回答您的问题时,请看它,它向您展示了如何检查在查找中是否未找到任何内容以及如何查找。下一步:“注意:如果查找内容与任何内容不匹配(因为nothing.Activate无效),您的Activate语句将失败,但这是另一天的问题。”我想今天又是另一天了!哈哈(很抱歉,今天上午没有时间再次帮助您-将不得不将其留给其他人。)MSDN是一个很好的资源!在它回答您的问题时,请查看此内容,向您展示如何检查查找中是否未找到任何内容以及如何查找。下一步:“注意:如果查找内容与任何内容不匹配,则您的激活语句将失败(因为Nothing.Activate无效),但这是另一天的问题。“我想今天又是另一天了!哈哈(对不起,今天早上没有时间再帮你了,只能留给别人了。)很好的调用,我没有对代码进行太多的测试,因为它开始出现一系列奇怪的行为。改为
thisRng1=ActiveCell.Address
,这应该包括在内。我知道你使用更好的编程原则的目的,也许我以后会深入研究。很好的调用,我没有对代码进行太多的测试,因为它开始出现在一系列奇怪的行为中她那一大堆奇怪的行为。改为thisRng1=ActiveCell.Address
,应该涵盖了这一点。我知道你在使用更好的编程原理,也许我以后会深入研究这一点。