我正在努力将数据从Sheet1中的单元格拉到Sheet2,并且我有正确的数据副本宏,但是,我需要根据另一个单元格中的信息提取特定条目。
我从单元格A14开始为我的代码而且所有的工作都将在A列中完成。基本上,我需要从Sheet1中的单元格A14开始并拉出每个第5个单元格并根据找到的标准将其复制到Sheet2中细胞下面的细胞我决定是否需要复制。是否复制上述2个单元格中的数据的标准是单元格是否包含"选择答案"或不。
例如, X + 5 = N 如果n + 2 ="选择并回答",请将n复制到Sheet2
我目前可以在下面找到宏。
Sub CopyNthData()
Dim i As Long, icount As Long
Dim ilastrow As Long
Dim wsFrom As Worksheet, wsTo As Worksheet
Set wsFrom = Sheets("Sheet1")
Set wsTo = Sheets("Sheet2")
ilastrow = wsFrom.Range("A1000000").End(xlUp).Row
icount = 1
For i = 14 To ilastrow Step 5
wsTo.Range("A" & icount) = wsFrom.Range("A" & i)
icount = icount + 1
Next i
End Sub
答案 0 :(得分:0)
这样的东西?
原则是使用Offset。您可以将其用于比较范围和要检索的范围。
鉴于您的比较存在不确定性,似乎
wsFrom.Cells(i, 1).Offset(2, 0)) = "choose an answer"
比较当前的两行,而
wsFrom.Cells(i, 1).Offset(-2, 0)) = "choose an answer"
比较
下面的两行如果您想要复制当前单元格以外的其他内容,则可以从当前单元格进行偏移,例如
wsTo.Range("A" & icount) = wsFrom.Range("A" & i).Offset(1,0)
上面的示例,然后从当前的单元格中复制值。
在偏移中,第一个数字是从当前位置移动的行数,第二个数字是列数。
Option Explicit
Sub CopyNthData()
Dim i As Long, icount As Long
Dim ilastrow As Long
Dim wsFrom As Worksheet, wsTo As Worksheet
Set wsFrom = Sheets("Sheet1")
Set wsTo = Sheets("Sheet2")
ilastrow = wsFrom.Range("A1000000").End(xlUp).Row
icount = 1
For i = 14 To ilastrow Step 5
If LCase$(Trim$(wsFrom.Cells(i, 1).Offset(2, 0))) = "choose an answer" Then
wsTo.Range("A" & icount) = wsFrom.Range("A" & i)
icount = icount + 1
End If
Next i
End Sub