Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/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
Vba 如果搜索值不存在,则使用嵌套查找选择范围中的下一条记录_Vba_Loops_Nested_Find - Fatal编程技术网

Vba 如果搜索值不存在,则使用嵌套查找选择范围中的下一条记录

Vba 如果搜索值不存在,则使用嵌套查找选择范围中的下一条记录,vba,loops,nested,find,Vba,Loops,Nested,Find,我有一系列从2000年到2020年的每日日期和股票收盘价。这些历史数据很容易从公共互联网站点下载。下面的子例程查找每个月的第n天,并将行值复制到工作表其他位置的列表中。问题是,在240个月中,对于任何给定的第n天,子程序只返回170个月,因为无论选择哪一天,例如,一个月的第9天,有许多月份的这一天不是交易日。宏适用于选定的第n天,但如果第n天未交易,我希望能够选择并复制下一行。例如,2000年9月9日是星期六,市场关闭,所以我想捕捉第11个星期一。我不知道如何嵌套循环以捕获第二天 Public

我有一系列从2000年到2020年的每日日期和股票收盘价。这些历史数据很容易从公共互联网站点下载。下面的子例程查找每个月的第n天,并将行值复制到工作表其他位置的列表中。问题是,在240个月中,对于任何给定的第n天,子程序只返回170个月,因为无论选择哪一天,例如,一个月的第9天,有许多月份的这一天不是交易日。宏适用于选定的第n天,但如果第n天未交易,我希望能够选择并复制下一行。例如,2000年9月9日是星期六,市场关闭,所以我想捕捉第11个星期一。我不知道如何嵌套循环以捕获第二天

Public Sub FindDte()
Application.ScreenUpdating = False
Dim num As Integer

num = 9
With Range("A1:D" & ActiveSheet.UsedRange.Rows.Count)
Dim c As Range
Set c = .Find(What:=num, LookIn:=xlValues)
    If Not c Is Nothing Then
        Dim NextRow As Long
        NextRow = Application.WorksheetFunction.CountA(Sheets("Sheet1").Range("F:F")) + 1
        Dim firstAddress As String
        firstAddress = c.Address
        Dim record() As Variant
            Do
                record = Range("A" & c.Row, "D" & c.Row).Value
                Range("F" & NextRow, "I" & NextRow).Value = record
                NextRow = NextRow + 1
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And Not c.Address = firstAddress
    End If
End With
Application.ScreenUpdating = True
End Sub

列表在A到D列中,我将日期分为monthdate、daydate和yeardate,以便于搜索。列表正在转储到数组中。

我发现上面的代码不能按需要工作。它选择了第n天,但它应该为每个月选择第n条记录。所以我想找到一种方法,将变量num设置为每个月的第n个记录。