Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 循环查找值匹配条件会产生类型不匹配_Vba_Loops_Type Mismatch - Fatal编程技术网

Vba 循环查找值匹配条件会产生类型不匹配

Vba 循环查找值匹配条件会产生类型不匹配,vba,loops,type-mismatch,Vba,Loops,Type Mismatch,我试图在一个范围内循环,看看这个值是否与不同范围内的另一个值匹配,如果匹配,它将输入匹配的值。循环工作一次,将匹配的值插入“E3”,然后产生“类型不匹配”错误。有没有一个善良的人能告诉我为什么我的代码不起作用?我会非常感激 Sub find_that() ActiveWorkbook.Worksheets("Output").Activate For Each a In Worksheets("Output").Range("E3:E28") For Each

我试图在一个范围内循环,看看这个值是否与不同范围内的另一个值匹配,如果匹配,它将输入匹配的值。循环工作一次,将匹配的值插入“E3”,然后产生“类型不匹配”错误。有没有一个善良的人能告诉我为什么我的代码不起作用?我会非常感激

Sub find_that()
    ActiveWorkbook.Worksheets("Output").Activate 
    For Each a In Worksheets("Output").Range("E3:E28")
        For Each b In Worksheets("SelectionOfSKU").Range("F3:F66")
            If a.Offset(0, -3).Value = b.Value And b.Offset(0, 2) <> 0 Then
                a.Value = b.Offset(0, -4).Value 'If condition met, input the matched value
            End If
        Next b
    Next a
End Sub
Sub find_that()
活动工作簿。工作表(“输出”)。激活
对于工作表中的每个a(“输出”)。范围(“E3:E28”)
对于工作表中的每个b(“SelectionOfSKU”)。范围(“F3:F66”)
如果a.Offset(0,-3).Value=b.Value和b.Offset(0,2)0,则
a、 Value=b.偏移量(0,-4)。Value'如果满足条件,则输入匹配的值
如果结束
下一个b
下一个
端接头

问题已解决,代码如下:

Sub find_sku2()

Dim a As Long, i As Long
Dim b As Long, j As Long

i = Sheets("Output").Range("E" & Rows.Count).End(xlUp).Row
j = Sheets("SelectionOfSKU").Range("F" & Rows.Count).End(xlUp).Row

For a = 3 To i
    For b = 1 To j
            If Sheets("Output").Cells(a, 2).Value = Sheets("SelectionOfSKU").Cells(b, 6).Value And Sheets("SelectionOfSKU").Cells(b, 8).Value <> 0 Then
                Sheets("Output").Cells(a, 5).Value = Sheets("SelectionOfSKU").Cells(b, 2).Value
            End If
        Next
Next
Sub find_sku2()
暗淡如长,我如长
尺寸b与长度相同,j与长度相同
i=工作表(“输出”).Range(“E”和Rows.Count).End(xlUp).Row
j=工作表(“SelectionOfSKU”)。范围(“F”和行数。计数)。结束(xlUp)。行
对于a=3到i
对于b=1到j
如果表(“输出”).Cells(a,2).Value=Sheets(“SelectionOfSKU”).Cells(b,6).Value和表(“SelectionOfSKU”).Cells(b,8).则值为0
表格(“输出”)。单元格(a,5)。值=表格(“SelectionOfSKU”)。单元格(b,2)。值
如果结束
下一个
下一个

End Sub

请在您的问题中指出导致错误的实际行。一旦这样做了,就更容易分离出导致错误的确切表达式。我想说
b.Offset(0,2)。值0
是我真正看到的唯一东西,但是未声明的默认选项应该是
.Value
,因此没有更多关于哪一行出错的信息…这将很难诊断,因为我们也不知道您的错误是在
a=E3
下的b循环中还是在
a=E4
下的第二个b循环中发生的…它发生在第一个循环中,还在E3的时候。。。。