Public Sub CopyModelHideBlankRows()
AppSettings
Dim StartTime As Variant
Dim UsedTime As Variant
StartTime = VBA.Timer Dim RngAddress As String, Rng As Range, Sht As Worksheet, URows As Range
Dim RngRow As Long, RngCol As Long, FirstRow As Long
Const MaxRow As Long = 57
Set Sht = Application.ActiveSheet
With Sht On Error Resume Next
Set Rng = Application.InputBox("请选择2号所在的区域", "QQ 84857038", , , , , , 8)
On Error GoTo 0 If Rng Is Nothing Then Exit Sub RngRow = Rng.Rows.Count
RngCol = Rng.Columns.Count
FirstRow = Rng.Cells(1, 1).Row If RngRow < MaxRow Then
Rng.Cells(1, 1).Resize(MaxRow - RngRow, 1).EntireRow.Insert
End If Set Rng = .Cells(FirstRow, "A").Resize(MaxRow, RngCol)
Debug.Print Rng.Address For i = 3 To 31
EndRow = .Cells.Find("*", .Cells(1, 1), xlValues, xlWhole, xlByRows, xlPrevious).Row + 1
Rng.Copy .Cells(EndRow, 1)
Next i EndRow = .Cells.Find("*", .Cells(1, 1), xlValues, xlWhole, xlByRows, xlPrevious).Row
For i = 1 To EndRow
If Application.WorksheetFunction.CountA(.Rows(i)) = 0 Then
If URows Is Nothing Then
Set URows = .Rows(i)
Else
Set URows = Union(URows, .Rows(i))
End If
End If
Next i If Not URows Is Nothing Then
URows.EntireRow.Hidden = True
End If End With
UsedTime = VBA.Timer - StartTime
' Debug.Print "UsedTime :" & Format(UsedTime, "#0.0000 Seconds")
MsgBox "UsedTime :" & Format(UsedTime, "#0.0000 Seconds") AppSettings False
End Sub
Public Sub AppSettings(Optional IsStart As Boolean = True)
Application.ScreenUpdating = IIf(IsStart, False, True)
Application.DisplayAlerts = IIf(IsStart, False, True)
Application.Calculation = IIf(IsStart, xlCalculationManual, xlCalculationAutomatic)
Application.StatusBar = IIf(IsStart, ">>>>>>>>Macro Is Running>>>>>>>>", False)
End Sub

  

04-14 07:29