2017-05-02 9 views
0

行 "F"の空白セルを含むすべての行を削除するマクロを取得しようとしています。ここでEXCELでマクロを割り当てる指定したセルが空白の行を削除するVBAコード

が私のコードです:

Sub DeleteBlanks() 
    On Error Resume Next 
    Range([indirect("V1")]).Select.EntireRow.SpecialCells(xlBlanks).EntireRow.Delete 
End Sub 

間接的(V1)はで動作するようにどのような範囲を示す変数を参照する現在のセルV1がMaterjal!F1:F191が含まれています。

ボタンにコードを適用した後、クリックすると範囲が選択されますが、空のセル値を持つ行は削除されません。

私は間違っていますか?この作業は

enter image description here

+2

あなたは 'レンジ([間接的( "V1")を])しようとしていいですSpecialCells(xlBlanks).EntireRow.Delete'の代わりに、'範囲([間接的( "V1"。 )])。Select.EntireRow.SpecialCells(xlBlanks).EntireRow.Delete'? – Ralph

+0

Selectはコマンドです。そのコマンドの後のすべてが無視されます。 Ralphが書いた数式を使用します。 – Luuklag

答えて

0
fRange = Range(Cells(1,"F"),Cells(.CountRows,"F")) 
If fRange = "" Then 
Cells(.countRows,"F").EntireRow.Delete 
End If 

ですか?

0

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

Sub Macro1() 

Dim i As Integer 
Dim last As Integer 

last = ActiveSheet.UsedRange.Rows.Count 

''select unused column 
Range("AA1").Select 
Selection.Formula = "=IF(F1 = """", ""Y"", ""N"")" 
Selection.AutoFill Destination:=Range("AA1:AA" & last) 
Selection.Copy 
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
    :=False, Transpose:=False 


Range("AA1").Select 
For i = 1 To last 

    If Selection.Value = "Y" Then 
     Selection.EntireRow.Delete 
    Else: ActiveCell.Offset(1, 0).Select 
    End If 


Next 

Columns("AA:AA").ClearContents 

End Sub 
関連する問題