Option Explicit
Sub progressiveCopy()
Dim m As Long
Static i As Long, k As Long
Application.CutCopyMode = False
m = 1000
If k <> ActiveCell.Column Then
k = ActiveCell.Column
i = 0
End If
With Worksheets("sheet1")
m = Application.Min(m, .Cells(.Rows.Count, k).End(xlUp).Row - i)
.Cells(i + 1, k).Resize(m, 1).Copy
i = i + m
If i >= .Cells(.Rows.Count, k).End(xlUp).Row Then
MsgBox "This column is complete. Select another column next time."
End If
End With
End Sub
2 回答
选择一列并从“宏”对话框(Alt F8)运行子过程 . 前1000个单元格将被复制到剪贴板 .
将数据粘贴到另一个程序中 .
返回Excel并再次运行子过程 . 接下来的1000行数据将被复制到剪贴板 .
将最后一组数据复制到剪贴板后,将显示一个消息框 .
您可能希望在“宏”对话框中为子过程设置热键组合,以简化重复操作 .
此代码查找当前所选列中的行数 . 检查要复制的数字是否小于剩余的行数 . 选择范围并将范围置于复印模式 . 复制范围后,您必须转到它们的工作表,文档或其他任何粘贴数据 .
我已经修改了代码,然后选择了1000行或列中剩下的内容 . 因此,您应该能够运行代码,粘贴数据,运行代码,粘贴数据 . 当您结束时,会显示一条消息,告知您位于列的末尾 .