我想知道是否有人可以帮我这个..
我在一张excel表中有大约500,000行......而在其他excel表中我有大约600,000行......
那么我如何只选择Excel中的一半行...
我的意思是假设总数是500,000行...... 那么我想只选择一半的250,000行...
复制并将其放入新文件并再次应用宏来选择其中的一半,即125,000 ...
请建议如何做到这一点。
答案 0 :(得分:1)
此代码
Find
来标识特定工作表中真实的第一个和最后一个使用的行(我使用变量ws
作为工作表,以防您想要处理非活动工作表)如果工作表不为空,则rng3
返回一个新范围,该范围从第一个使用的行开始,并延伸第一行和最后一行之间距离的一半
Sub GetHalfRows()
Dim ws As Worksheet
Dim rng1 As Range
Dim rng2 As Range
Dim rng3 As Range
Set ws = ActiveSheet
Set rng1 = ws.Cells.Find("*", ws.[a1], , , xlByRows, xlPrevious)
Set rng2 = ws.Cells.Find("*", ws.Cells(Rows.Count, "A"), , , xlByRows, xlNext)
If Not rng1 Is Nothing Then
Set rng3 = ws.Range(rng2, rng2.Offset((rng1.Row - rng2.Row) / 2, 0)).EntireRow
MsgBox "selected range is " & rng3.Address
Else
MsgBox ws.Name & " is empty"
End If
End Sub
答案 1 :(得分:1)
试试这个:
Sub CopyHalfRows()
Dim TargetWorkbook As Workbook
Dim HalfRows As Range
On Error GoTo HalfRowsImpossible
Set HalfRows = ActiveSheet.UsedRange.Resize _
(ActiveSheet.UsedRange.Rows.Count \ 2)
On Error GoTo 0
If Not HalfRows Is Nothing Then
Set TargetWorkbook = Workbooks.Add
HalfRows.Copy
ActiveSheet.PasteSpecial
End If
Exit Sub
HalfRowsImpossible:
MsgBox "Cannot halve worksheet"
On Error GoTo 0
End Sub