0

我有一列包含时间值:

05:13:32
05:13:32
05:13:32
05:13:32
05:13:33
05:13:33
05:13:34
05:13:34
05:13:35
05:13:35
05:13:36
05:13:36
05:13:36
05:13:37
05:13:37
05:13:38
05:13:38
05:13:39
05:13:39

这些值在 C 列中。

现在:第一个点是我开始寻找比第一个值多 2 秒的下一个值的点,这意味着我会找到 05:13:34。

我写了这段代码,但它不起作用,因为Find函数 (What:=) 不接受我声明为的变量x= Activecell.Value + "00:00:2"

Sub sekundenfinder2()
    Dim sekundo2 As Range
    Dim x as Integer 
    Range("C153").Select  
    ' //// Here is the Point where I begin to go the colomn down and look for the next value 

    Selection.Activate
    Set sekundo2 = Range("C:C").Find(What:="x", After:=ActiveCell)
    sekundo2.Select
End Sub

第二个问题:

Activecell.Value给出值 0,21.......,这意味着 Excel 将值从时间转换为数字,但我想将时间保持在这种格式“00:00:00”中。我试图将格式更改为时间,它仍然将其更改为数字。

有什么建议么?

4

1 回答 1

0
  1. 使用DateAdd添加时间
  2. 当您使用x内引号时,它不会保留为变量,而是更改为字符串。
  3. 声明xDate和不Integer

这是你正在尝试的吗?我假设数据是从头C1开始的并且C105:13:32

Sub sekundenfinder2()
    Dim sekundo2 As Range
    Dim x As Date

    x = DateAdd("s", 2, Range("C1").Value)

    Set sekundo2 = Range("C:C").Find(What:=x)

    If Not sekundo2 Is Nothing Then sekundo2.Select
End Sub

在此处输入图像描述

于 2013-04-24T21:37:56.057 回答