【发布时间】:2015-06-19 23:58:15
【问题描述】:
我正在尝试创建一个宏,它将在我的范围内搜索并复制像“* 01”这样的单元格所在的整行。它复制并粘贴到我需要的工作表,但它循环并复制同一行,如果有更简单的方法来完成此操作,也许我不需要循环。我真正需要的只是复制所有具有像'* 01'这样的单元格的行并将其粘贴到我的新工作表中。这将每隔 5 行向下查找具有该值的单元格。非常感谢!
Sub Macro3()
'ctrl + l
Dim GetBook As String
Dim cell As Range
Dim SrchRng As Range
GetBook = ActiveWorkbook.Name
Set SrchRng = ActiveSheet.Range("d7:d500")
Do Until IsEmpty(ActiveCell)
For Each cell In SrchRng
'And IsEmpty(ActiveCell.Offset(5, 0))
If cell Like "*01" Then cell.Offset(0, 0).EntireRow.Copy
Next cell
Loop
Windows("TestCov.xlsx").Activate
ActiveWindow.WindowState = xlNormal
Range("iv1").End(xlToLeft).Offset(0, 1).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Windows(GetBook).Activate
ActiveCell.Offset(5, 0).Select
【问题讨论】:
-
vb.net vba 或其他任何东西
-
这个地址到底是什么?
Range("iv1").End(xlToLeft).Offset(0, 1).Select您从一个固定位置开始,进入其中的子范围(只有一个单元格,因此它将返回与您开始时相同的内容),然后从那里偏移。为什么不Range("iv2")完成它? -
为什么粘贴在循环外?
-
我需要 iv1 部分,因为它将新工作表粘贴到第一个空列中(第一行的第一个空单元格),因为我不知道他们将复制多少行,所以我需要它来查找下一个可用