根据单元格

时间:2017-01-03 20:37:46

标签: excel-vba vba excel

我有电子表格,列出A列中的日期,从2016年12月1日上午1:45:00开始。我重新格式化此列中的所有单元格,以便显示Day,Month#,Year。示例Thursday, December 01, 2016。如果我点击实际的查找按钮并搜索值,Find函数可以正常工作,但是我很难对此进行编码。我想删除包含"星期六"的所有行和"星期天"。我尝试过的最新代码如下:

Last = Cells(Rows.Count, "D").End(xlUp).Row
For i = Last To 1 Step -1
    If (Cells(i, "D").Value) = "*Saturday*" Then
Cells(i, "A").EntireRow.Delete
    End If
Next i

我也尝试过以下代码;

Set Find = Range("A:A").Find("Saturday", LookIn:=xlValues)
Do Until Find Is Nothing
    Find.EntireRow.Delete
    Set Find = Range("A:A").FindNext
Loop

2 个答案:

答案 0 :(得分:1)

将LookAt参数设置为xlPart

Find("Saturday", , , xlPart)

答案 1 :(得分:0)

更改

If (Cells(i, "D").Value) = "*Saturday*" Then`

If (Cells(i, "D").Text) Like "*Saturday*" Then

使用Text代替Value将访问显示的值,而不是基础值(日期),使用Like代替=将允许通配符工作。

您的问题令人困惑的是日期所在的列。您的一些代码(以及您的问题)表明它们位于A列中,但代码的其他部分建议使用D列。如果它们位于A列中,请更改上面的代码使用"A"代替"D"