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

问题描述 投票:-1回答:1

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

变量已经预先定义,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
excel vba excel-vba
1个回答
0
投票

下面的代码将检查Sheet1 A列上的Last Row with Data,然后它将从第2行循环到Last并检查Column 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
© www.soinside.com 2019 - 2024. All rights reserved.