Excel VBA:将某些非连续单元格从工作表行复制到另一工作表的行中

Excel VBA:将某些非连续单元格从工作表行复制到另一工作表的行中,excel,vba,Excel,Vba,我有一个工作表,其中每一行(标题除外)代表一个条目,每一列代表一个字段(非常标准的东西)。字段上升到BB列 我想将某些条目(与特定标识字段的特定值相匹配的条目)复制到另一张表上。但是,我不需要原始工作表上的所有字段,只需要大约10个字段,这些字段在原始工作表上是不连续的 因此,对于每个(有效)行,我希望执行如下操作: for each origRow in origSheet.Rows if strcomp(origRow.cells(idCellNumber).value, myId,

我有一个工作表,其中每一行(标题除外)代表一个条目,每一列代表一个字段(非常标准的东西)。字段上升到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

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

中描述的问题似乎与您的需求非常接近。作者:bonCodigo:如果您需要的与Juri Ruut的答案不同,请复制数据表的屏幕,好吗?
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