2016-03-31 5 views
-1

今日、私はまだMSエクセルマクロを作成するために私の上司の仕事の問題に直面しています。今直面しMS Excelマクロ自動カウント機能

問題は、メッセージボックスのユーザーオープンワークシートに

  • 自動カウント古くなったデータやショーです。

は、私はインターネットのソースから非常に多くのコードを試してみましたが、結果はまだ、それができないのコードを同じ実行するか数え量は0

いずれかが任意の提案や解決策を持っていました。ありがとうございました。以下は

はこのcoddingだけ古くなったデータの0量を表示する2エラーcodding

  • です。

    CountedAmount = Application.WorksheetFunction.CountIf(レンジ( "L4:L1048576")、 "赤")

  • このcoddingが実行されていないだろう、警告ショー実行時エラー1004アプリケーション定義またはオブジェクト定義エラー

    CountedAmount = Application.WorksheetFunction.CountIf(レンジ( "L4:xlUp")、 "赤")

これらは私のマクロに関する完全なcoddingです。あなたは赤色細胞の量をカウントしたい場合

Sub Worksheet_Activate() 

Dim CountedAmount As Integer 

With Worksheets("Sheet1") 

lastrow = Range("L1048576").End(xlUp).Row 

'This codding will only display 0 amount of outdated data. 
CountedAmount = Application.WorksheetFunction.CountIf(Range("L4:L1048576"),  "Red") 

'This codding will not running, warning show up Run-time error 1004 Application-defined or object-defined eror 
'CountedAmount = Application.WorksheetFunction.CountIf(Range("L4:xlUp"), "Red") 

For i = 4 To lastrow 

If Range("L" & i).Value <> "" And Now <> "" Then 

    If Range("L" & i).Value <= Now Then 
     MsgBox CountedAmount & " expiring"   
     Range("L" & i).Font.ColorIndex = 3 

    End If 
End If 
Next i 
End With 
End Sub 
+0

この値は、セルの値が "赤" Application.WorksheetFunction.CountIf(範囲( "L4:L1048576")、 "赤")であれば問題ありませんが、赤色のセルの数をカウントする場合は、返信のために – gizlmo

答えて

0

、このようなものを使用します。

Dim startCell As Integer, endCell As Integer 
Dim column As Integer 
Dim CountCells As Integer 

startCell = 4 
endCell = 100 

column = 12 'Column L 

CountCells = 0 

Dim i As Integer 

For i = startCell To endCell Step 1 

    If Cells(i, column).Interior.ColorIndex = 3 Then 

     CountCells = CountCells + 1 
    End If 
Next i 

は、あなたのコラムにあなたの携帯と列に一致するようにstartCellとendCellを調整します。このループは現在L4からL100まで検索しています

そして、使用している赤がどの色のインデックスであるかを調べる必要があります。おそらく、RGBコードを使用する.ColorIndexの代わりに.Colorを使用する必要があります。

+0

thxを見つけなければならないが、鉱山のコード部分に提供されたコード化のurに追加されている、それは機能していない、彼はまだコメントボックスが限られた文字スペースを持っていたために0である。私はあなたにメッセージを開始する方法を知っている方法で知っている、私はここに新しいです..z – Han

+0

あなたはこのコードをコピーした場合、古くなったセルがどのようにマークされているか教えてください、colorindexが間違っている可能性があります。色が付いている場合は、ColorまたはColorindexを教えてください(Cellをクリックし、Debug.Print ActiveCell.Interior.Color/ActiveCell.Interiorを使用してください)。ColorIndexを使用してデバッグウィンドウの値を確認してください) – gizlmo

+0

>>> Font.ColorIndex = 3ええ、以前のコードと同じです。私が掲示したコーディングに基づいて、古いものは今日の日付と比較される契約の期日ですので、期日=>今日が古いと考えられる場合、正面の色は赤色に変わります。 – Han

関連する問題