一次选择每个范围Vba
如何编写循环代码或使其同时选择所有可能的项。“In”应位于选定范围的第一位,并向下延伸至最晚的第一位,并将类似范围复制到列表中。 谢谢你的反馈一次选择每个范围Vba,vba,excel,Vba,Excel,如何编写循环代码或使其同时选择所有可能的项。“In”应位于选定范围的第一位,并向下延伸至最晚的第一位,并将类似范围复制到列表中。 谢谢你的反馈 SelectBetween() Dim findrow As Long, findrow2 As Long On Error GoTo Err findrow = Range("A:A").Find("In", Range("A1")).Row findrow2 = Range("A:A").Find("Late", Ra
SelectBetween()
Dim findrow As Long, findrow2 As Long
On Error GoTo Err
findrow = Range("A:A").Find("In", Range("A1")).Row
findrow2 = Range("A:A").Find("Late", Range("A" & findrow)).row
Range("A" & findrow & ":A" & findrow2).copy
Exit Sub
Err:
MsgBox "Cells unspecified"
End Sub
到目前为止做得不错。一点建议:Find方法返回一个range对象,使用它可以赋予您一些优势
Private Sub SelectBetween()
Dim firstInCell, tmpInCell, firstLateCell, tmpLateCell, copyRange As Range
On Error GoTo Err
Set firstInCell = Range("A:A").Find("In", Range("A1"))
Set firstLateCell = Range("A:A").Find("Late", Range("A1"))
Set tmpInCell = firstInCell
Set tmpLateCell = firstLateCell
Set copyRange = Range(tmpInCell, tmpLateCell)
Do
Set tmpInCell = Range("A:A").Find("In", tmpInCell)
Set tmpLateCell = Range("A:A").Find("Late", tmpInCell)
Set copyRange = Union(copyRange, Range(tmpInCell, tmpLateCell))
Loop While tmpInCell.Address <> firstInCell.Address
copyRange.Copy
Exit Sub
Err:
MsgBox "Cells unspecified"
End Sub
Private-Sub-SelectBetween()
Dim firstInCell、tmpInCell、firstLateCell、tmpLateCell、copyRange作为范围
上错下错
设置firstInCell=Range(“A:A”)。查找(“In”,Range(“A1”))
设置firstLateCell=Range(“A:A”)。查找(“Late”,Range(“A1”))
设置tmpInCell=firstInCell
设置tmpLateCell=firstLateCell
设置copyRange=范围(tmpInCell、tmpLateCell)
做
设置tmpInCell=Range(“A:A”)。查找(“In”,tmpInCell)
设置tmpLateCell=Range(“A:A”)。查找(“Late”,tmpInCell)
设置copyRange=Union(copyRange,Range(tmpInCell,tmpLateCell))
在tmpInCell.Address firstInCell.Address时循环
复制范围,复制
出口接头
错误:
MsgBox“未指定单元格”
端接头
逻辑:找到第一个目标并将其存储到
firstInCell
和firstLateCell
中。我建立了一个copyRange
来保存所有匹配的范围。Find
函数有一个功能,如果没有找到任何内容,它将滚动回到开始,因此我可以检查结果以确定循环是否完成。任何回答此问题的尝试都需要一些猜测。如果单元格A2和A10都包含“In”,单元格A8和A16都包含“Late”,请编辑您的问题以使其更清晰。您想选择A2:A8、A2:A16、A8:A10、A10:A16(即A2:A16)?谢谢您提供的详细答案。另一方面,如何实现delete来删除行而不存储任何数据?感谢所有帮助如果您有行号,您可以通过行(i)将其删除。删除。删除多行的最佳方法是先将它们联合起来,然后立即删除它们。否则一个一个的删除会花费很多时间。我明白了。再次感谢你,非常感谢你的帮助。