也许有人可以帮助我解决这个让我疯狂的基本问题。我只需要根据其输出将一些数据从一个工作表复制到另一个工作表。
先前已定义变量,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
答案 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