Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 是否有方法检索介于两个日期之间的值?_Excel_Vba - Fatal编程技术网

Excel 是否有方法检索介于两个日期之间的值?

Excel 是否有方法检索介于两个日期之间的值?,excel,vba,Excel,Vba,我试图建立一个VBA代码,其中我有2个日期被用作日期范围。使用此日期范围,我试图将其与表中每一行的日期进行比较。如果表日期在日期范围内,我希望检索表中的特定值 例如: 日期范围: 2021年1月2日至2021年1月7日 颜色在A列,日期在B列 红色-2021年8月3日 橙色-2021年1月9日 对于这个例子,我需要它返回“Red”是的,有 如果您尝试,请记住首先在代码的配置部分设置正确的值 Sub RetrieveValue() Dim start_date, end_date As Date

我试图建立一个VBA代码,其中我有2个日期被用作日期范围。使用此日期范围,我试图将其与表中每一行的日期进行比较。如果表日期在日期范围内,我希望检索表中的特定值

例如:

日期范围: 2021年1月2日至2021年1月7日

颜色在A列,日期在B列

红色-2021年8月3日 橙色-2021年1月9日

对于这个例子,我需要它返回“Red”

是的,有

如果您尝试,请记住首先在代码的配置部分设置正确的值

Sub RetrieveValue()

Dim start_date, end_date As Date
Dim dates_col, db_start_row, db_end_row As Integer
Dim counter, values_col, retrieve_values_col As Integer

'CONFIG THIS BEFORE YOU RUN THE MACRO
'--------------------------
retrieve_values_col = 4   'column number where you want to retrieve the values
values_col = 2            'column where all the values are
dates_col = 3             'in what column are the dates?
db_start_row = 3          'in what row does the data start?
start_date = Date - 4     'set the date interval
end_date = Date + 3       'DATE is a function that returns todays date
'--------------------------

db_end_row = Cells(Rows.Count, dates_col).End(xlUp).Row

For counter = db_start_row To db_end_row

    If Cells(counter, dates_col) >= _
    start_date And Cells(counter, dates_col) <= end_date Then
    
        Cells(counter, retrieve_values_col) = Cells(counter, values_col)
        
    End If

Next counter

End Sub
子检索值()
Dim开始日期,结束日期为日期
Dim dates\u col、db\u start\u行、db\u end\u行为整数
Dim计数器,值\u列,检索值\u列为整数
'请在运行宏之前配置此选项
'--------------------------
检索\u值\u col=4'要检索值的列号
值\u col=2'列,其中所有值均为
日期\u col=3'在哪一列是日期?
db_start_row=3'数据从哪一行开始?
开始日期=日期-4'设置日期间隔
end_date=date+3'date是一个返回今天日期的函数
'--------------------------
db\u end\u row=单元格(Rows.Count,dates\u col).end(xlUp).row
对于计数器=db\U开始\u行到db\u结束\u行
如果单元格(计数器、日期列)>=_

开始日期和单元格(计数器、日期列)共享到目前为止的代码将是一个好主意。在您的情况下,这可能有助于我们了解您是如何获得这两个日期的,以及您计划如何处理结果的,即可能有多个结果,那么您将如何存储这些结果,您将如何处理它们,或者您只是试图找到第一个结果。。。