2017-06-09 15 views
0

空白のセル(値 ""、数式を含む可能性があります)を削除するマクロを名前付き範囲に作成しようとしていますが、 '424'、それは "オブジェクトが必要です"名前付き範囲をループして空白のセルを削除する

Sub DeleteBlankCellsInANamedRange() 
'Deletes empty cells in a named range (shifts cells up) 

For Each c In Range("myNamedRange") 
    If c.Value = 0 Then 
     myNamedRange.Cells.Delete Shift:=xlUp 'error 424 throws here 
    End If 
Next c 
MsgBox "Macro completed" 

End Sub 

私は問題が構文であることを理解し、運がなければさまざまなことを試みてきました。何か案は?シェアしてください。ご協力いただきありがとうございます!

+0

'Option Explicit'を使用してください。 'Range(" myNamedRange ")を使用します。Cells'これは' 'myNamedRange''または' myNamedRange'です。 'c.Delete ... 'を使用してください – cyboashu

+0

ありがとう@cyboashu ---魅力のように働いていました。 – PBG

+0

実際には@cyboashu、マクロは範囲内のすべてのセルを削除しました。全範囲は空白ではありません。これに関するアイデア? – PBG

答えて

0
Sub DeleteBlankCellsInANamedRange() 
'Deletes empty cells in a named range (shifts cells up) 

Dim rngCell  As Range 
Dim rngDelete As Range 

For Each rngCell In Range("myNamedRange").Cells 
    If rngCell.Value = 0 Then 

     If Not rngDelete Is Nothing Then 
      Set rngDelete = Union(rngDelete, rngCell) 
     Else 
      Set rngDelete = rngCell 
     End If 


    End If 
Next 

    If Not rngDelete Is Nothing Then 
     rngDelete.Delete Shift:=xlUp 
    End If 

MsgBox "Macro completed" 

End Sub 
+0

こんにちは@cyboashu ---これは非常に感謝しますが、うまくいきません。 – PBG

+0

削除したい空白のセルには、数式が含まれています。具体的には、条件を指定すると条件式が空白( "")になります。 – PBG

+0

'' 'を削除したい場合は' 'If rngCell.Value =" "Then'を使用してください – cyboashu

関連する問題