gpt4 book ai didi

excel - 查找包含特定值的行

转载 作者:行者123 更新时间:2023-12-04 19:52:28 24 4
gpt4 key购买 nike

我有一个 Excel 工作表,其中 A 列中的每个单元格都是按顺序排列的日期。

    A    
----------
1/01/2016
...
12/31/2019

如何返回找到特定日期的行号?

像这样:

Private Sub btnSubmit_Click()

today = Date

row_today = ThisWorkbook.Sheets("Sheet1").Range("A:A").Find(What:=today, _
LookIn:=x1Values)

MsgBox row_today

End Sub

最佳答案

在子例程开始时声明变量是一种很好的做法,在这种情况下它会帮助您找到错误。另一个问题是 .Find 当前正在返回一个范围,您希望在其中查看该范围的行号。我将在下面解释如何解决这两个问题:


声明变量

在您要返回的代码中:

  • today 作为日期和
  • row_today 作为一个长整数

编辑:我之前建议将 row_today 声明为 integer。如果行号大于 32,767,这将产生错误;所以我已经修改为long,它可以轻松处理超过 200 万行

但是你现在正在返回:

  • today 作为变体和
  • row_today 作为变体

你可以这样声明它们:

Dim today As Date
Dim row_today As Long

使用.Find

在你的这行代码中:

row_today = ThisWorkbook.Sheets("Sheet1").Range("A:A").Find(What:=today, LookIn:=x1Values)

首先,你有一个错字 - 它应该是 LookIn:=xlValues 而不是 LookIn:=x1Values

其次,您将返回包含您要查找的日期的单元格范围。有关 .Find 方法的更多信息,请阅读 MSDN Doc here .

要返回行号,只需要在末尾添加.Row,如下所示:

row_today = ThisWorkbook.Sheets("Sheet1").Range("A:A").Find(What:=today, LookIn:=x1Values).Row

所以你的最终代码应该是这样的:

Private Sub btnSubmit_Click()

Dim today As Date
Dim row_today As Long

today = Date
row_today = ThisWorkbook.Sheets("Sheet1").Range("A:A").Find(What:=today, LookIn:=xlValues).Row

Debug.Print row_today

End Sub

关于excel - 查找包含特定值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51663744/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com