Excel 查找某个标题并在其下复制一定数量的条目
我试图搜索某个标题(本例中的标题1),并将该标题下的一定数量的单元格复制到某个范围。标题本身的文本不应该被复制,而应该复制它下面的所有内容 下面的代码可以工作,但它复制了太多的行。当我对x=0到3使用Excel 查找某个标题并在其下复制一定数量的条目,excel,vba,Excel,Vba,我试图搜索某个标题(本例中的标题1),并将该标题下的一定数量的单元格复制到某个范围。标题本身的文本不应该被复制,而应该复制它下面的所有内容 下面的代码可以工作,但它复制了太多的行。当我对x=0到3使用时,它会复制“标题1”下的下10行,而不是仅复制3行。我找不到我的错误 Sub FindCopyPasteV2() With Worksheets("Sheet1").Range("A:FF") Dim FindEQ3 As Range Dim TestR
时,它会复制“标题1”下的下10行,而不是仅复制3行。我找不到我的错误
Sub FindCopyPasteV2()
With Worksheets("Sheet1").Range("A:FF")
Dim FindEQ3 As Range
Dim TestR As Range
Dim x As Long
Set FindEQ3 = .Find(What:="Header 1", LookAt:=xlWhole, MatchCase:=True, SearchFormat:=False)
For x = 0 To 3
Set FindEQ3 = FindEQ3.Resize(FindEQ3.Rows.Count + x).Offset(1)
Set TestR = .Range("K" & 5 + x)
FindEQ3.Copy TestR
Next x
End With
End Sub
我认为你的问题在于你做了两次。循环的目的是确保复制3行,但实际上,FindEQ3.Resize
已经这样做了
这段代码应该更接近你想要的。我主要是把线圈拿出来
Sub FindCopyPasteV2()
With Worksheets("Sheet1").Range("A:FF")
Dim FindEQ3 As Range
Dim TestR As Range
Const NUM_ROWS_COPY As Long = 3
Set FindEQ3 = .Find(What:="Header 1", LookAt:=xlWhole, MatchCase:=True, SearchFormat:=False)
Set FindEQ3 = FindEQ3.Resize(NUM_ROWS_COPY).Offset(1)
Set TestR = .Range("K" & 5)
FindEQ3.Copy TestR
End With
End Sub
我不知道为什么要使用for循环来复制多个单元格。请查找下面的代码。这应该找到您要查找的标题,然后在其他位置的值之间“复制”
Option Explicit
Sub FindCopyPaste()
Dim mRng As Range
Dim fRng As Range
Dim xOff As Long
Dim mSheet As Worksheet
'number of cells to "copy" across
xOff = 3
Set mSheet = Sheets("Sheet1")
Set mRng = mSheet.Range("A:FF")
Set fRng = mRng.Find(What:="Header 1", LookAt:=xlWhole, MatchCase:=True, SearchFormat:=False)
If Not fRng Is Nothing Then
'if it finds the header
'now set values
mSheet.Range("K5").Resize(xOff, 1).Value = mSheet.Range(mSheet.Cells(fRng.Row + 1, fRng.Column), mSheet.Cells(fRng.Row + xOff, fRng.Column)).Value
Else
MsgBox "Error! Could not find Header 1!"
End If
End Sub
你好我不明白FOR循环的位置。你正在复印1行,然后是2行,然后是3行,然后是4行。。。。你想复制多少行?在找到“标题1”后,我试图使用循环将此标题下的一定数量的单元格复制到不同的范围。在上面的例子中,我试图复制标题1下的3行。谢谢你的建议。问题是,在下一步中,我想运行一个宏,读取找到的“Header 1”下的单元格,并在复制它们之前将它们与不同位置的其他值进行比较。为了准备这个宏的“高级版本”,我想使用一个循环,而不仅仅是复制单元格。谢谢你的建议。问题是,在下一步中,我想运行一个宏,读取找到的“Header 1”下的单元格,并在复制它们之前将它们与不同位置的其他值进行比较。在准备这个宏的“高级版本”时,我想使用循环,而不仅仅是复制单元格。