2016-04-23 9 views
0

名前が_で終わる各名前付きセルを検索しようとしていますが、セルの値は空白です。これは私が無駄に使用しているコードです。 (msgboxは、それがどれだけ見つかるか分かりやすくするためです)_は、セルを必要とすることです。一度に1つずつ行う必要はありません。ありがとう!名前と空白の値に特定の文字を持つ名前付きセルをすべて検索します。

namedrange = 0 

For Each cell In ActiveWorkbook.Names 
If Right(cell.Name, 1) = "_" And cell.Value = "" Then 
cell.Interior.ColorIndex = 3 
namedrange = namedrange + 1 
End If 
Next cell 

MsgBox namedrange 

答えて

0

ソリューション:

requiredmissing = 0 

Dim RangeName As Name 
Dim namedrange As Long 

For Each RangeName In ActiveWorkbook.Names 
    If Right(RangeName.Name, 1) <> "_" Then GoTo skipthisone 

     If Range(RangeName.Name).Value = "" Then 
     Range(RangeName.Name).Interior.ColorIndex = 6 
     requiredmissing = requiredmissing + 1 
     Else 
     Range(RangeName.Name).Interior.ColorIndex = 0 
     End If 

    all = all + 1 
skipthisone: 
Next RangeName 
1

これを試してみてください:

Sub test() 
    Dim RangeName As Name 
    Dim namedrange As Long 
    namedrange = 0 

    For Each RangeName In ActiveWorkbook.Names 
     If Right(RangeName.Name, 1) = "_" And Range(RangeName).Value = "" Then 
     Range(RangeName).Interior.ColorIndex = 3 
     namedrange = namedrange + 1 
     End If 
     all = all + 1 
    Next RangeName 

    MsgBox namedrange 
End Sub 
+0

、@Mrigをありがとう! 'And Range' ...は微妙な調整が必要でしたが、私は下に巻きました。私は本当にあなたの助けに感謝します! –

+0

@JoePatrick - 厳密には 'Range(RangeName).Value'と' Range(RangeName.Name).Value'は同じ結果を返すでしょう。なぜなら 'RangeName'がセルアドレスで' RangeName.Name'は名前だけであるからです同じセルアドレスに与えられる。 – Mrig

+0

こんにちは、@Mrig、私は専門性についてはわかりませんが、それは調整なしでランタイムエラーが13の不一致を持っています。それは、セルの名前の代わりにセルの値を返していました。 –

関連する問題