根据用户条件选择显示的行

时间:2015-08-16 05:07:08

标签: vba date

我看过但没有找到我正在尝试的任务的解决方案。我是VBA的新手,所以学习曲线很陡峭。这是我想要做的:

在Excel 2010/2013中,我在前9行中有一个固定内容的工作表,从第10行开始,列B中连续日期的数据行。我需要用户能够评估某些内容中的数据表格中所有日期的子集。

例如:用户在单元格K1中输入值“06/15/15”,在单元格N1中输入“06/19/15”。第10行到第20行都包含一条记录,B列是每条记录的日期字段。在该示例中,单元格B10包含日期06/12/15到单元格B20,其包含日期06/22/15。我需要代码来查看单元格K1和N1的内容,将它们解释为日期范围的边界,并仅显示行值为10或更大且在该定义范围内的数据行,隐藏所有其他人,可以看到标题行1到9。只有大于9的行,其中日期在用户选择的标准之间并且包括用户选择的标准。

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

dim iRow as integer
dim iColumn as integer

iRow = 10     'Row 10
iColumn = 2   'Column B

do until activesheet.cells(iRow, iColumn).value = ""
    if datediff("d", activesheet.range("K1").value, _
        activesheet.cells(iRow, iColumn).value) => -10 AND _
        datediff("d", activesheet.range("N1").value, _
        activesheet.cells(iRow, iColumn).value) =< 10 then _
        activesheet.rows(iRow).entirerow.hidden = true
    iRow = iRow + 1
loop

如果你需要检查多个列,可以使用iColumn = iColumn + 1在此循环内添加一个额外的循环。这是你要找的吗?