-1

1 つの値をチェックして、msgbox を表示する vba コードを取得しました。If Range("AH4").Value Then MsgBox "95 を超えるテーブルスペース"

しかし、約50個の値の列全体をチェックしたいのですが、列全体をトラバースし、値のいずれかが95より大きい場合にメッセージボックスを表示するループコードが必要です.ABCD 1 Tablespace Total Size(Mb) Total Free(MB) )PCT_USED 2モニター100 99 1 3 PSAPSR3 73,940 3,992 94.6 4 PSAPSR3702 84,960 24,391 71.29 5 PSAPSR3USR 40 16 61 6 PSAPUNDO 9,260 9,221 0 7 SYSAUX 760

今、私はクリスによって与えられた解決策を改良したいと思います. 1. msgbox が PCT_USED の下で 95 より大きいセルの実際の値を表示するようにしたい。2.そして、そのmsgboxは、列Aの下に対応するテーブルスペースの名前を表示する必要があります(私はExcelシートでこの列を凍結しました)。

4

2 に答える 2

2

これをループする必要はありません。

試す

Sub TestRange()
    Dim rng As Range

    Set rng = [F1:F10]  ' <-- adjust to your requirements
    If Application.WorksheetFunction.Max(rng) > 95 Then
        MsgBox "tablespace greater than 95"
    End If
End Sub
于 2012-10-08T09:47:13.050 に答える
0

for eachループを使用するのはどうですか....

Sub CheckInColumn()
Dim TestCell As Range

    For Each TestCell In [E1].EntireColumn.Cells
        ' break on first find
        If TestCell > 95 Then
            MsgBox "Co-coo"
            Exit For
        End If
    Next TestCell
End Sub

Selection[E1] の代わりに、カーソルが現在置かれている列を確認するために使用できます。

For Each通常、ループは離散For ... Nextループよりも高速です。

于 2012-10-08T09:51:20.290 に答える