答案1
在单元格 D1 中:
=IF(ROUND((A1-C1)*24*60,1) = 30, B1,"")
然后将其向下拖动以获取所有值。
这将获取 A1 - C1,为您提供时间的十进制表示,将其乘以 24 和 60 得到分钟,将其四舍五入到最接近的整数分钟,最后评估它是否为 30。如果是,则显示 B1,如果不是,则显示空白单元格。
根据您的使用情况,您可能需要使用 < 或 > 来包含不完全是 30 的值。
答案2
我这样做了并且效果很好:
Sub Process()
Dim i,j,N,M as Integer
Dim Time_Diff as Integer
Dim TimeA,TimeC as Date
For i = 1 to 5
TimeA=worksheets("Data").Range("A"&i).Value
For j = 1 to 17
TimeC=worksheets("Data").Range("C"&j).Value
if Datediff("n",TimeA,TimeC) = 30 then
worksheets("Data").Range("D"&j)=worksheets("Data").Range("B"&i)
Goto SkipThis
End if
Next j
SkipThis:
Next i
End sub