macros只复制可见单元格

macros只是复制过滤行的可见单元格,虽然我没有使用复制只有可见的单元格。 我如何让我的macros来复制所有单元格,尽pipe它们在表单中是不可见的

任何帮助是极大的赞赏

谢谢

尼科,

在这种情况下,只需复制工作表并进行两次删除,代码将立即运行。 如果你最后一行的位置是未知的,那么我可以调整这个代码来find真正的最后使用的行

Sub QuickKill() Application.ScreenUpdating = False ActiveSheet.Copy After:=Sheets(Sheets.Count) With ActiveSheet .AutoFilterMode = False .Rows("1:1499").Delete .Rows("2001:30000").Delete End With Application.ScreenUpdating = True End Sub 

如果只复制单元格值和公式(即无格式)是可以接受的,那么可以使用它

 Sub CopyAllData() Dim v As Variant Dim rngFrom As Range Dim rngTo As Range ' set a reference to the range to be copied, eg Set rng = [2:8] ' get the data v = rng.Formula ' set a range to the desitination, eg Set rngTo = [8:12] ' put the data rngTo.Formula = v End Sub 

编辑
刚才看到你对niko的评论,似乎你想要格式。 一次复制一行就行
我最初尝试rngTo.Hidden = FALSE而不是rngTo.RowHeight = 15 ,但它返回一个错误,不知道为什么

 Sub CopyAll() Dim rngFrom As Range Dim rngTo As Range Dim i As Long Dim sh As Worksheet Dim OldCalc As XlCalculation On Error GoTo Cleanup OldCalc = Application.Calculation Application.ScreenUpdating = False Application.EnableEvents = False Application.Calculation = xlCalculationManual ' set a reference to the range to be copied, eg Set rngFrom = [2:12] ' set a range to the desitination first row, eg Set sh = Worksheets("Sheet2") Set rngTo = sh.[2:2] ' copy each row in turn and restore the copied row height For i = 1 To rngFrom.Rows.Count rngFrom.Rows(i).Copy rngTo rngTo.RowHeight = 15 Set rngTo = rngTo.Offset(1, 0) Next Cleanup: Application.ScreenUpdating = True Application.EnableEvents = True Application.Calculation = OldCalc End Sub