创建宏以删除符合特定条件的列中的单元格内容

时间:2013-04-17 18:45:12

标签: excel excel-vba excel-formula vba

你好,有人可以帮助我。 我有三列,我想搜索每一列并删除内容,如果它符合 某些标准。

B列仅删除名称为的单元格 列C仅删除带有单词托盘和数字的单元格 列F仅删除带*后跟四个0000的单元格,然后以*结尾 这就是我提出的但是它不起作用,我不知道该怎么做。我搜索并搜索过。我该怎么做?谢谢?

列B名称列单元格格式FN,LN清除第16行到lastrow的所有名称。有些'行可能有日期和时间,我不想触及那些

列C范围格式托盘226985清除该列中任何行的内容,其中包含单词tray,后跟一个数字到lastrow

列F范围格式 000000226985 以*开头,然后是4 0000,以*格式删除单元格内容以及该格式到lastrow

Sub Macro1()

Range(b1, b65536).Value = ("*,*").clearcontent
Range(c1, c65536).Value = tray(*).clearcontent
Range(f1, f65536).Value = ("*0000*").clearcontent

End Sub

1 个答案:

答案 0 :(得分:3)

以下内容应通过循环遍历A列中的每个单元格并检查偏移单元格来完成您所需的任务。我已经复制了你的标准,但我不熟悉'托盘(*)',我想你可能想要用以下内容替换这一行:

If c.Offset(0, 2).Value Like "Tray*" Then

你可能需要查看备选方案,如果它在“托盘”之后是一个数字,我会留给你以使标准正确,但希望我已经帮助了循环方法。

Dim sh As Worksheet
Dim rng As Range, c As Range

Set sh = ActiveSheet
Set rng = sh.Range("A:A")

For Each c In rng

    If c.Offset(0, 1).Value Like "*,*" Then
        c.Offset(0, 1).ClearContents
    End If
    If c.Offset(0, 2).Value Like tray(*) Then ' see note on replacing this line
        c.Offset(0, 2).ClearContents
    End If
    If c.Offset(0, 5).Value Like "*0000*" Then
        c.Offset(0, 5).ClearContents
    End If
Next c