将多个工作表中同一行的值复制到一个工作表

时间:2017-09-27 23:09:40

标签: excel vba excel-vba

我有一个类似问题的代码: copy the same row from multiple sheets into one sheet in excel

第二个答案(来自Gary的学生)以代码为特色,它适用于我的大多数数据。有问题的代码将从excel文件中的每个工作表中获取相同的行,并将所有这些行放入最后一个工作表中。

问题是,我的一些数据是由引用组成的。当我运行代码时,我不想复制“= B12”,但我想要粘贴特殊值。谁能编辑代码才能像这样工作?

1 个答案:

答案 0 :(得分:3)

.value添加到您感兴趣的行中可以解决您的参考问题。

Sub row_copy()

For i = 1 To Worksheets.Count - 1

   Sheets(6).Rows(i) = Sheets(i).Rows(7).Value 'added .value and reversed order of that code

Next i

End Sub

修改

第二个答案

Sub copyrow()
Dim Nrow As Long, Nsheet As Long
Dim i As Long

Nrow = 7
Nsheet = 6

For i = 1 To Nsheet - 1
    Sheets(Nsheet).Rows(i) = Sheets(i).Rows(7).Value
    'Sheets(i).Cells(Nrow, 1).EntireRow.Copy Sheets(Nsheet).Cells(i, 1)
Next i
End Sub

一种确定并获取除您正在写入的工作表之外的所有工作表的方法。

Sub row_copy()
Dim i As Long
i = 1

With Application.Sheets("Your Sheet Name")

    For Each Item In Worksheets

        If Item.Name <> .Name Then
            .Rows(i) = Sheets(i).Rows(7).Value
            i = i + 1
        End If

    Next

End With

End Sub