接下来没有错误

时间:2013-04-03 16:20:31

标签: excel vba

我试过做'下一个细胞',但没有骰子。我试图从G2开始向下列,并将结果转储到另一个工作表中。

For Each cell In Range("G2").End(xlDown)
    If cell.Value = "New York" Then
    ActiveCell.Offset(0, -2).Select
    ReDim partnerArray(0 To i)
        partnerArray(i) = ActiveCell.Offset(0, -2).Value

 Next
ActiveWorkbook.Worksheets ("By Resource Level")
    Range("A1").Value = partnerArray

3 个答案:

答案 0 :(得分:1)

结束(xlDown)转到范围中的最后一个单元格,就好像您单击ctrl down一样,因此您只需在代码中选择一个值。

关于partnerArray给出不匹配错误,这是因为您试图将一组数据放入一个单元格而不是指定下标,即partnerArray(0)

如果您想要所有结果,则需要遍历数组并将每个结果输入到不同的单元格。我很快就会向您展示一个代码示例

编辑:

For Each cell In Range("G2:G10").Cells
    If cell.Value = "New York" Then
        ReDim Preserve partnerArray(i)
        cell.Select
        partnerArray(i) = ActiveCell.Offset(0, -2).Value
        i = i + 1
    End If
Next

On Error Resume Next

For i = LBound(partnerArray) To UBound(partnerArray)
    ActiveWorkbook.Worksheets("By Resource Level").Cells(i + 1, 1).Value = partnerArray(i)
Next i

答案 1 :(得分:0)

编译器有时会显示不是错误真正来源的错误消息。在这种情况下,您没有关闭If语句:

For Each cell In Range("G2").End(xlDown)
    If cell.Value = "New York" Then
        ActiveCell.Offset(0, -2).Select
        ReDim partnerArray(0 To i)
        partnerArray(i) = ActiveCell.Offset(0, -2).Value
    Endif

 Next
ActiveWorkbook.Worksheets ("By Resource Level")
    Range("A1").Value = partnerArray

答案 2 :(得分:0)

您在End If

之前缺少Next