2016-07-26 86 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

我懷疑你明白我的要求,因爲代碼完美無缺。謝謝 –

相關問題