2016-07-26 6 views
0

私は解決のための日を検索しました。私は毎日行うスケジュールを持っています。スケジュールは、私がどれほどビジーであるかに依存して列の数が変化するが、列は一定である。動的に別のセルの内容に基づいてセルを消去しようとしています

ほとんどの場合、私はマクロを記録するだけで必要なことを行うことができます。

問題は、同じ行の別のセルで条件が満たされたときにセルの内容を消去する必要があることです。具体的には、列Hのある行に文字Lがある場合、同じ行の列Bのセルの内容を消去する必要があります。

私は答えで同様の質問を見つけましたが、すべて静的なセルの内容に影響しました。

、私は次のいくつかのバリエーションを試してみました

Sub mdlabkill() 

Dim LastRow As Long 

Dim x As Long 

LastRow = Cells(Rows.Count, 5).End(xlUp).Row 

For x = 1 To LastRow 

    If Cells(x, 5).Value = L Then Range(Cells(x, 2)).ClearContent 

    Next x 


End Sub 
+0

あなたのデータおよびあなたの絵の一部を投稿することができますワークシート? –

+4

あなたのモジュールの上部に 'Option Explicit'を追加して、VBAが変数' L'が定義されていないと不平を言うのを見ます。文字列リテラルと比較する場合は、 'L'を引用符で囲みます。' 'L"は文字列リテラルで、 'L'はあなたがどこにも宣言していない変数です。 –

答えて

0

私が正しくあなたの質問を理解していれば、あなたはこのコードを試してください:

Sub mdlabkill() 
Dim LastRow As Long, x As Long 
LastRow = Cells(Rows.Count, "B").End(xlUp).Row 

For x = 1 To LastRow     'x = 1 indicates your first data is located in row 1 
    If Cells(x, "H").Value = "L" Then 'Or Cells(x, 7) = "L" 
     Cells(x, "B").ClearContents  'Or .Clear to delete all the formats in the cell 
    End If 
Next x 

End Sub 
+0

私は、コードが完璧に機能していたので、私が求めていたことを理解したと思う。ありがとうございました –

関連する問題