zoukankan      html  css  js  c++  java
  • 20170821xlVBA跨表公式套用

    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
    

      

  • 相关阅读:
    系统测试的策略
    POJ1611(并查集)
    POJ2752(KMP)
    POJ3176(DP)
    HDU2579(BFS)
    HDOJ1175(BFS)
    HDOJ1242(BFS)
    HDOJ1180(BFS)
    HDOJ1372(BFS)
    HDOJ2717(BFS)
  • 原文地址:https://www.cnblogs.com/nextseven/p/7402525.html
Copyright © 2011-2022 走看看