2015-08-16 55 views
1

我看过但未找到解决方案,我尝试的任务。我是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的行,日期介于用户选择的标准之间(包括用户选择的标准)应该是可见的。

+0

如果您发布了编写此代码的尝试,那么我们可以帮助解决您可能遇到的任何问题。 SO不是代码请求服务。 –

+0

@iturner - 我明白你在说什么,但我的努力没有产生任何有用的东西,我在他们不工作时删除了它们。我想我太新了。 –

回答

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添加此循环的一个额外的环难道这就是你要找的人?