2017-08-25 10 views
0

ある範囲内のすべてのセルの長さが25文字以下になっているかどうかをチェックするVBAコードを書き込もうとしました。例えばVBA最大列のセルの長さを確認

細胞のいずれかが25個の以上の文字を持っている場合は、セルの名前を持つメッセージボックスがポップアップする必要があります。..

範囲= A1:A10

セルA3場合、 27文字がありますmsgboxが "Cell A3"というポップアップを表示する必要があります

皆さんからお手伝いできますか?

+2

表示すること?セル 'A3'が27文字、セル' A5'が30文字の場合はどうなりますか?最初のエラーだけが必要ですか?あるいは、それらを1つの 'MsgBox'にまとめるか、エラーごとに個別の' MsgBox'を持っていますか?何が望ましい行動ですか? – Tom

+0

VBAコーディングにはまだまだかなり新しいので、たくさん試してみましたが、オンラインで見ましたが、何も私の問題を解決しません(またはリモートでも動作します)。 複数のエラーが存在する場合、ボックス。 – ErikSlui

+1

@ErikSluiあなたの*コードをお手伝いする人々がいることをご理解ください。彼らはあなたのためにそのコードを書くためにここにいません。したがって、あなたの質問を編集して、あなたが試したコードを追加して、どこに行き詰まったのか、どこでエラーが発生したのかを教えてください。だから誰もあなたが間違っていたこととあなたのコードでそれを訂正する方法を示すことができます。 –

答えて

3

これは事実上あなたが求めているものです。それは非常に単純なループです。しかし代わりに一つだけMsgBoxを持つ25

Sub TestCellLengths() 
    Dim c As Range 

    For Each c In Range("A1:A10") 
     If Len(c) > 25 Then MsgBox "Cell " & c.Address(RowAbsolute:=False, ColumnAbsolute:=False) 
    Next c 
End Sub 

私が推薦する上での値の多くが付いている大規模なデータセットでお使いの画面を苦しめるだろうあなたがこれまでに試してみました何

Sub TestCellLengths() 
    Dim c As Range 
    Dim Msg As String 

    For Each c In Range("A1:A10") 
     If Len(c) > 25 Then Msg = Msg & vbTab & c.Address(RowAbsolute:=False, ColumnAbsolute:=False) & vbNewLine 
    Next c 

    If Len(Msg) > 0 Then MsgBox "Cells:" & vbNewLine & Msg 
End Sub 
+0

'Dim c As Range'を宣言することができますので、ここで* 'evil' *を使う必要はありません;)もう一つの利点:' 'c ''にintelli senseを使うことができます。 –

+0

驚くばかり!これは魅力のように機能します!どうもありがとう! – ErikSlui

+1

ありがとうございます。更新しました – Tom