通过循环将粘贴值从一张纸复制到另一张

时间:2018-01-04 13:26:26

标签: excel vba excel-vba

也许有人可以帮助我解决这个让我疯狂的基本问题。我只需要根据其输出将一些数据从一个工作表复制到另一个工作表。

先前已定义变量,wMod和wRes代表工作表,countP和countC代表在另一个工作表中计算的单元格总数。

我需要做的是编写一个代码,该代码能够使用单元格B中包含数字1的值复制数据,将其粘贴并粘贴到另一个工作表中。当我编写下面的代码时,我只进入A列,表格中记录了存储在变量countP中的单元格总数。

你可以看到我在下面附上的图片输出了什么样的输出。Data output任何人都知道为什么我无法获得正确的输出?几个小时以来一直坚持这个问题。

For i = 3 To countP
        If wMod.Range("B" & i) = 1 Then
            For j = 3 To countC1
                wMod.Range("A" & i).Copy wRes.Range("A" & j)
            Next j
        End If
Next i

1 个答案:

答案 0 :(得分:0)

以下代码将检查Sheet1列A上的数据的最后一行,然后它将从第2行循环到最后一行并检查列B是否为1,然后它将检查最后一行中有关Sheet2列A的数据,并将值粘贴到下一行(即下一个空行)。

它是这样的:

Sub foo()
Dim ws As Worksheet: Set ws = Sheets("Sheet1")
Dim ws2 As Worksheet: Set ws2 = Sheets("Sheet2")
Dim LastRow As Long
Dim LastRow2 As Long

LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
'find the last row with data on Column A in Sheet1

For i = 2 To LastRow 'loop from row 2 to last
    If ws.Range("B" & i) = 1 Then 'if column B in Sheet1 = 1 then
    LastRow2 = ws2.Cells(ws2.Rows.Count, "A").End(xlUp).Row 'find the last row with data on Sheet2 Column A
    ws2.Cells(LastRow2 + 1, 1) = ws.Range("A" & i)
    End If
Next i
End Sub
相关问题