0

我有一个工作表,其中每一行(标题除外)代表一个条目,每列一个字段(非常标准的东西)。这些字段上升到 BB 列。

我想将某些条目(与特定标识字段的特定值匹配的条目)复制到另一张纸上。但是,我不想要原始工作表上的所有字段,只有大约 10 个,它们在原始工作表上不连续。

因此,对于每个(有效)行,我想做这样的事情:

for each origRow in origSheet.Rows
    if strcomp(origRow.cells(idCellNumber).value, myId, vbTextCompare) = 0 then
        copySheet.Row(copySheetRowNumber).value = origRow.Range(Cells(1), Cells(8), Cells(15), Cells(4))
        copySheetRowNumber++
    end if
next

显然这段代码是无效的。此外,我不能简单地复制整个条目然后删除不相关的列,因为工作表包含将被删除的现有数据。任何人都可以提出最快的方法来实现这一点吗?

4

1 回答 1

2
Dim arrSourceCols, arrDestCols
Dim x As Long

arrSourceCols = Array(1, 3, 5, 7)
arrDestCols = Array(2, 4, 8, 12)

For Each origRow In origSheet.UsedRange.Rows
    If StrComp(origRow.Cells(idCellNumber).Value, myId, vbTextCompare) = 0 Then

        For x = LBound(arrSourceCols) To UBound(arrSourceCols)
            copySheet.Cells(copySheetRowNumber, arrDestCols(x)).Value = _
                                  origRow.EntireRow.Cells(arrSourceCols(x)).Value
        Next x

        copySheetRowNumber = copySheetRowNumber + 1
    End If
Next
于 2012-11-09T19:58:01.453 回答