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

Vba 根据用户条件选择显示的行,vba,date,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包含日期0

我已经看过了,但没有找到解决我正在尝试的任务的方法。我是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且日期介于和包括用户选择的条件的行才可见。

请尝试以下操作:

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
dim iRow为整数
dim iColumn作为整数
iRow=10'第10排
iColumn=2'列B
直到activesheet.cells(iRow,iColumn).value=“”
如果datediff(“d”),则为activesheet.range(“K1”)值_
activesheet.cells(iRow,iColumn).value)=>-10和_
datediff(“d”,activesheet.range(“N1”).值_
activesheet.cells(iRow,iColumn).value)=<10_
activesheet.rows(iRow).entirerow.hidden=true
iRow=iRow+1
环

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

试试这样的方法:

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
dim iRow为整数
dim iColumn作为整数
iRow=10'第10排
iColumn=2'列B
直到activesheet.cells(iRow,iColumn).value=“”
如果datediff(“d”),则为activesheet.range(“K1”)值_
activesheet.cells(iRow,iColumn).value)=>-10和_
datediff(“d”,activesheet.range(“N1”).值_
activesheet.cells(iRow,iColumn).value)=<10_
activesheet.rows(iRow).entirerow.hidden=true
iRow=iRow+1
环

如果需要检查多个列,可以在此循环中添加一个额外的循环,循环的iColumn=iColumn+1。这就是您想要的吗?

如果您发布了编写此代码的尝试,我们可以帮助您解决可能遇到的任何问题。所以这不是一个代码请求服务。@iTerner-我理解你的意思,但我的尝试没有产生任何有用的结果,当它们不起作用时,我删除了它们。我想我对这太陌生了。如果你发布了你写这段代码的尝试,我们可以帮助你解决任何可能遇到的问题。所以这不是一个代码请求服务。@iTerner-我理解你的意思,但我的尝试没有产生任何有用的结果,当它们不起作用时,我删除了它们。我想我对这个太陌生了。