返回列表 上一主題 發帖

[發問] 判斷符合資料儲存格數及複製資料問題

回復 1# day741025
  1. Sub Ex()
  2. Dim Rng  As Range
  3.     Set Rng = Range("C2:C26")  'Rng.Rows.Count 有25個儲存格數
  4.    ' Application.CountIf  使用工作表函數
  5.     If Application.CountIf(Rng, "<=0.95") < Rng.Rows.Count Then
  6.         Range("A1:C26").Copy Range("I1")
  7.     ElseIf Application.CountIf(Rng, "<=0.90") < Rng.Rows.Count Then
  8.         Range("A1:C26").Copy Range("I1")
  9.     End If
  10. End Sub
複製代碼

TOP

回復 3# day741025

請重新上傳範例的檔案

TOP

本帖最後由 GBKEE 於 2011-7-17 21:35 編輯

回復 5# day741025
  1. Sub Ex()
  2. Dim Rng  As Range, i As Integer, Msg As Boolean
  3.     i = 25   ' 儲存格數,是否低於25
  4.     With ActiveSheet
  5.          .AutoFilterMode = False         '取消自動篩選
  6.         Set Rng = .Range("A1", .Range("C" & Rows.Count).End(xlUp))
  7.         If Application.CountIf(Rng.Columns(3), "<=0.95") < i Then
  8.             Rng.AutoFilter 3, "<=0.95"   '自動篩選  選擇第3欄, 條件"<=0.95"
  9.             Msg = True
  10.         ElseIf Application.CountIf(Rng.Columns(3), "<=0.90") < i Then
  11.             Rng.AutoFilter 3, "<=0.90"
  12.             Msg = True
  13.         End If
  14.         Set Rng = Rng.SpecialCells(xlCellTypeVisible)
  15.         If Msg = True Then
  16.             .AutoFilterMode = False
  17.             .Range("I:K").Clear
  18.             Rng.Copy .Range("i1")
  19.             With .Cells(Rows.Count, "I").End(xlUp)
  20.                 .Offset(1) = "不符合"
  21.                 .Offset(1, 1) = Application.Sum(ActiveSheet.Range(.Offset(1, 1), .Cells.End(xlUp).Offset(, 1)))
  22.                 .Offset(1, 2) = 1
  23.             End With
  24.         End If
  25.     End With
  26. End Sub
複製代碼

TOP

回復 7# day741025
B欄的加總-J欄的加總
  1. Sub Ex()
  2. Dim Rng  As Range, i As Integer, Msg As Boolean, S As Double
  3.     i = 25   ' 儲存格數,是否低於25
  4.     With ActiveSheet
  5.          .AutoFilterMode = False         '取消自動篩選
  6.         Set Rng = .Range("A1", .Range("C" & Rows.Count).End(xlUp))
  7.         S = Application.Sum(Rng.Columns(2))      'B欄的加總
  8.         If Application.CountIf(Rng.Columns(3), "<=0.95") < i Then
  9.             Rng.AutoFilter 3, "<=0.95"   '自動篩選  選擇第3欄, 條件"<=0.95"
  10.             Msg = True
  11.         ElseIf Application.CountIf(Rng.Columns(3), "<=0.90") < i Then
  12.             Rng.AutoFilter 3, "<=0.90"
  13.             Msg = True
  14.         End If
  15.         Set Rng = Rng.SpecialCells(xlCellTypeVisible)
  16.         If Msg = True Then
  17.             .AutoFilterMode = False
  18.             .Range("I:K").Clear
  19.             Rng.Copy .Range("i1")
  20.             With .Cells(Rows.Count, "I").End(xlUp)
  21.                 .Offset(1) = "不符合"
  22.                 .Offset(1, 1) = S - Application.Sum(Range("j:j"))  'B欄的加總-J欄的加總
  23.                 .Offset(1, 2) = 1
  24.             End With
  25.         End If
  26.     End With
  27. End Sub
複製代碼

TOP

        靜思自在 : 做該做的事是智慧,做不該做的事是愚癡。
返回列表 上一主題