Excel 无法搜索范围

Excel 无法搜索范围,excel,search,text,numbers,vba,Excel,Search,Text,Numbers,Vba,我对VB很陌生。尝试编写宏来帮助我完成日常任务。一直在这个网站上,帮助我走到了这一步。仍然有问题,所以我想我应该发布我的问题 我需要在A列中搜索某个单词,然后在B列中搜索某个数字,然后在单元格中计算并显示范围内的值 因此,基本上如果列A=“Word”和列B

我对VB很陌生。尝试编写宏来帮助我完成日常任务。一直在这个网站上,帮助我走到了这一步。仍然有问题,所以我想我应该发布我的问题

我需要在A列中搜索某个单词,然后在B列中搜索某个数字,然后在单元格中计算并显示范围内的值

因此,基本上如果列A=“Word”和列B<0 Cell.value=Countif(第C列,范围) 其他的 MsgBox=“未找到任何内容”

见下文。它是有效的,但由于某种原因,我得到了所有的值,写的是columnCrange,而不是columnA“Word”或columnB。。 任何评论都会有所帮助。 提前欢呼

Sub Word()

Dim i As Integer, HDIpctCompl As Single
   For i = 1 To 10000

    If Worksheets("1").Cells(i, 1) = "Word " And Worksheets("1").Cells(i, 2) < 0 Then
        Worksheets("1").Cells(2, 12).Value = Application.WorksheetFunction.CountIfs(Worksheets("1").Range("C:C"), ">=0.5", Worksheets("1").Range("C:C"), "<=0.599")

        Worksheets("1").Cells(3, 12).Value = Application.WorksheetFunction.CountIfs(Worksheets("1").Range("C:C"), ">=0.4", Worksheets("1").Range("C:C"), "<=0.499")

        Worksheets("1").Cells(4, 12).Value = Application.WorksheetFunction.CountIfs(Worksheets("1").Range("C:C"), ">=0.3", Worksheets("1").Range("C:C"), "<=0.399")

        Worksheets("1").Cells(5, 12).Value = Application.WorksheetFunction.CountIfs(Worksheets("1").Range("C:C"), ">=0.2", Worksheets("1").Range("C:C"), "<=0.299")

        Worksheets("1").Cells(6, 12).Value = Application.WorksheetFunction.CountIfs(Worksheets("1").Range("C:C"), ">=0.1", Worksheets("1").Range("C:C"), "<=0.199")

HDIpctCompl = i     'Progress bar, works, different Sub
HDIprogress HDIpctCompl

    End If
Next i

End Sub
子单词()
Dim i为整数,HDIpctCompl为单精度
对于i=1到10000
如果工作表(“1”)单元格(i,1)=“字”,工作表(“1”)单元格(i,2)小于0,则

工作表(“1”)单元格(2,12).Value=Application.WorksheetFunction.CountIfs(工作表(“1”)范围(“C:C”)、“>=0.5”、工作表(“1”)范围(“C:C”)、“=0.4”、工作表(“1”)范围(“C:C”)、“=0.3”、工作表(“1”)范围(“C:C”)、“=0.2”、工作表(“1”范围(“C:C”)、“=0.1”、工作表(“1”)范围(“C:C”)、“=0.4”、工作表(“sh1”范围(“C:C”)、=0.3”,“=0.2”,sh1.Range(“C:C”),“=0.1”,sh1.Range(“C:C”),“=0.0”,sh1.Range(“C:C”),”您只需在
COUNTIFS
语句中添加更多条件:

Sub Word()

With Worksheets("1")
    .Cells(2, 12).Value = Application.WorksheetFunction.CountIfs(.Range("A:A"), "Word", .Range("B:B"), "<0", .Range("C:C"), ">=0.5", .Range("C:C"), "<=0.599")
    .Cells(3, 12).Value = Application.WorksheetFunction.CountIfs(.Range("A:A"), "Word", .Range("B:B"), "<0", .Range("C:C"), ">=0.4", .Range("C:C"), "<=0.499")
    .Cells(4, 12).Value = Application.WorksheetFunction.CountIfs(.Range("A:A"), "Word", .Range("B:B"), "<0", .Range("C:C"), ">=0.3", .Range("C:C"), "<=0.399")
    .Cells(5, 12).Value = Application.WorksheetFunction.CountIfs(.Range("A:A"), "Word", .Range("B:B"), "<0", .Range("C:C"), ">=0.2", .Range("C:C"), "<=0.299")
    .Cells(6, 12).Value = Application.WorksheetFunction.CountIfs(.Range("A:A"), "Word", .Range("B:B"), "<0", .Range("C:C"), ">=0.1", .Range("C:C"), "<=0.199")
End With

End Sub
子单词()
带工作表(“1”)
.Cells(2,12).Value=Application.WorksheetFunction.CountIfs(.Range(“A:A”),“Word”),.Range(“B:B”),“=0.5”,.Range(“C:C”),“
Sub-Word()
带工作表(“1”)

.Cells(2,12).Value=Application.WorksheetFunction.CountIfs(.Range(“A:A”),“Word”),.Range(“B:B”),“=0.5”,.Range(“C:C”),”您的第一个代码正在查看第1行到第10000行中的A列和B列,然后如果找到正确的信息,则将信息写入第L列中的第2-6行。这是您想要的吗?在
之后没有变量,因此每次满足条件时,它都将继续替换第L列中第2-6行中的值。是的,搜索ca列中的某个单词,如果为true,则搜索小于0的数字,如果为true,则在LCountIfs列中计数和写入是搜索范围,介于01.1和0.199之间。我认为问题在于,当我在范围a和范围B中执行查找时,它完全忽略该行并向右移动到countifs。基本上,我需要一个case,if,or语句,它将在a列中找到一个单词,然后在B列中搜索所有小于0的数字,然后一旦该语句为真,它将在C列中计算。我一直在使用代码并搜索解决方案,但一直在工作堆积。@User123您的代码正在循环10000行数据,查看A列和B列中的数据,然后根据C列中的CountIf覆盖每个循环中L列中的数据。如果您只想在A列和B列中的值满足cer时计算C列中处于给定值之间的单元格总数根据标准,我的代码可以正常工作。你能分享一个带有典型数据的示例工作簿吗?我很忙,因此对迟来的响应表示歉意。谢谢你的帮助。看起来,像往常一样,我想得太多,太复杂了,无法修复lol。我测试了它,它似乎正常工作。删除了进度条以清理模块。使用第一个代码是因为我很快就理解了它,时间对这一点很重要。我会为我的案例编写第二个代码来清理它。如果我有任何问题,我会让你们都知道。再次感谢!!很高兴我能帮上忙!如果这解决了你的问题,请将答案标记为正确。
Sub Word()

With Worksheets("1")
    .Cells(2, 12).Value = Application.WorksheetFunction.CountIfs(.Range("A:A"), "Word", .Range("B:B"), "<0", .Range("C:C"), ">=0.5", .Range("C:C"), "<=0.599")
    .Cells(3, 12).Value = Application.WorksheetFunction.CountIfs(.Range("A:A"), "Word", .Range("B:B"), "<0", .Range("C:C"), ">=0.4", .Range("C:C"), "<=0.499")
    .Cells(4, 12).Value = Application.WorksheetFunction.CountIfs(.Range("A:A"), "Word", .Range("B:B"), "<0", .Range("C:C"), ">=0.3", .Range("C:C"), "<=0.399")
    .Cells(5, 12).Value = Application.WorksheetFunction.CountIfs(.Range("A:A"), "Word", .Range("B:B"), "<0", .Range("C:C"), ">=0.2", .Range("C:C"), "<=0.299")
    .Cells(6, 12).Value = Application.WorksheetFunction.CountIfs(.Range("A:A"), "Word", .Range("B:B"), "<0", .Range("C:C"), ">=0.1", .Range("C:C"), "<=0.199")
End With

End Sub
Sub Word()

Dim i As Long, j As Long
With Worksheets("1")
    j = 2
    For i = 5 To 1 Step -1
        .Cells(j, 12).Value = Application.WorksheetFunction.CountIfs(.Range("A:A"), "Word", .Range("B:B"), "<0", .Range("C:C"), ">=0." & i, .Range("C:C"), "<=0." & i & "99")
        j = j + 1
    Next i
End With

End Sub
Sub Word()

With Worksheets("1")
.Cells(2, 12).Value = Application.WorksheetFunction.CountIfs(.Range("A:A"), "Word", .Range("B:B"), "<0", .Range("C:C"), ">=0.5", .Range("C:C"), "<=0.599")
.Cells(3, 12).Value = Application.WorksheetFunction.CountIfs(.Range   ("A:A"), "Word", .Range("B:B"), "<0", .Range("C:C"), ">=0.4", .Range("C:C"), "<=0.499")
.Cells(4, 12).Value = Application.WorksheetFunction.CountIfs(.Range("A:A"), "Word", .Range("B:B"), "<0", .Range("C:C"), ">=0.3", .Range("C:C"), "<=0.399")
.Cells(5, 12).Value = Application.WorksheetFunction.CountIfs(.Range("A:A"), "Word", .Range("B:B"), "<0", .Range("C:C"), ">=0.2", .Range("C:C"), "<=0.299")
.Cells(6, 12).Value = Application.WorksheetFunction.CountIfs(.Range("A:A"), "Word", .Range("B:B"), "<0", .Range("C:C"), ">=0.1", .Range("C:C"), "<=0.199")
End With

End Sub