-1

我试着做“下一个单元”,但没有骰子。我正在尝试从 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
4

3 回答 3

1

End(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
于 2013-04-03T18:16:24.587 回答
0

End If你在你之前错过了一个Next

于 2013-04-03T19:28:23.037 回答
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
于 2013-04-03T16:22:45.553 回答