1
Date        Time    Variable
2011.01.02  22:22   1258.25
2011.01.02  22:24   1258.5
2011.01.02  22:26   1258.25
2011.01.02  22:27   1258.25
2011.01.02  22:28   1258.5
2011.01.02  22:29   1258.5
2011.01.02  22:31   1258.5
2011.01.02  22:32   1260.5
2011.01.02  22:33   1259.75
2011.01.02  22:34   1259.75
2011.01.02  22:37   1259.75
2011.01.02  22:38   1260
2011.01.02  22:39   1260.25
2011.01.02  22:40   1260
2011.01.02  22:43   1259.75
2011.01.02  22:44   1259.5
2011.01.02  22:47   1259.75
2011.01.02  22:48   1260
2011.01.02  22:52   1259.75
2011.01.02  23:10   1259.75
2011.01.02  23:12   1260
2011.01.02  23:13   1260.25
2011.01.02  23:14   1260.25
2011.01.02  23:15   1260.5
2011.01.02  23:16   1260.5
2011.01.02  23:17   1260.25

大家好,

我在 excel 中有一个时间序列数据,我想搜索所有以 23:xx(23 小时)开头的“时间”值并选择该单元格。相反,我得到的是 VBA 选择任何有时间“XX:23”(第 23 分钟)的单元格

假设我在“时间”列上有我的活动单元格,我正在使用此代码,但它不起作用。我究竟做错了什么?

Range(ActiveCell, ActiveCell.End(xlDown)).Find("23:", lookat:=xlPart).Select

后续问题:

还有另一个快速问题道格,我希望能够在第 23 小时找到以“23:XX”开头的所有数据点,找到第一个值和最后一个值,突出显示两者之间的所有内容并将其命名为一个范围。

在找到第一个“23:XX”后,我正在考虑一个“Do”语句来循环遍历单元格

Do
     ActiveCell.Offset(1, 0).Select
Loop Until Left(ActiveCell) = "23:"

但似乎“左”功能将单元格识别为数字,而不是时间格式的单元格?我应该怎么办?太感谢了!!

4

1 回答 1

2

Lookin函数的参数FIND指定是否查看“公式” - 您在编辑模式中看到的文本 - 或Value- 单元格中显示的内容。您的FIND函数正在查看公式,因此它会在单元格中看到“晚上 11:10”。将其更改为查看值,如下所示:

Range(ActiveCell, ActiveCell..End(xlDown)).Find("23:", lookat:=xlPart,lookin:=xlvalues).Select
于 2012-11-18T01:37:42.467 回答