我用的笨方法
Public Function Time2(str1 As String, str2 As String) As String
Dim i As Long
Dim Tmp() As String
Dim tmp2 As Integer
For i = 0 To UBound(Tmp())
If str1 = Tmp(i) Then Time2 = Tmp(i): Exit Function
If TimeEdit(Tmp(i)) > TimeEdit(str1) Then
If tmp2 = 0 Then Time2 = Tmp(i): Exit Function
a = TimeEdit(Tmp(i)) - TimeEdit(str1)
b = TimeEdit(str1) - tmp2
If a >= b Then
Time2 = Tmp(i - 1): Exit Function
Else
Time2 = Tmp(i): Exit Function
End If Else
tmp2 = TimeEdit(Tmp(i))
End If
Next
End Function注意!TimeEdit()函数是一个数字转换函数,不需要理解它
虽然正确但是非常不满意!
Public Function Time2(str1 As String, str2 As String) As String
Dim i As Long
Dim Tmp() As String
Dim tmp2 As Integer
For i = 0 To UBound(Tmp())
If str1 = Tmp(i) Then Time2 = Tmp(i): Exit Function
If TimeEdit(Tmp(i)) > TimeEdit(str1) Then
If tmp2 = 0 Then Time2 = Tmp(i): Exit Function
a = TimeEdit(Tmp(i)) - TimeEdit(str1)
b = TimeEdit(str1) - tmp2
If a >= b Then
Time2 = Tmp(i - 1): Exit Function
Else
Time2 = Tmp(i): Exit Function
End If Else
tmp2 = TimeEdit(Tmp(i))
End If
Next
End Function注意!TimeEdit()函数是一个数字转换函数,不需要理解它
虽然正确但是非常不满意!
解决方案 »
- 请大家推荐一个美观好用的表格工具,并带有使用说明,谢谢
- 远程访问ACCESS数据库问题?
- 能否让MDIChild为另一个FROM的MDIFROM,另一个FROM为他的MDIChild?
- 请问怎样用Sql语句向Access中的oleObject列中插图片
- 用inputbox函数,能使输入字符变成星号吗?
- 关于mscomm控件的用法?
- VB编程(语音怎样加密传输)
- 在线急侯*****怎样统计记录数形成柱状图
- c语言写的程序怎么将消息传给VB?
- 请问VB中有没有像Deltree一样功能的命令?
- http://vb1.myrice.com[VB空间站.net] 一个VB编程经验文档站点,欢迎光临啊!
- datacombo控件的应用
Dim aa(4) As Variant
aa(0) = 1
aa(1) = 4
aa(2) = 9
aa(3) = 11
aa(4) = 14
MsgBox GetMin(aa(), 10)
End Sub'DataArray 是一维数组
Function GetMin(DataArray As Variant, Num As Integer) As Integer
Dim i As Integer
Dim OldNum As Integer
Dim TempNum As Integer
Sort DataArray
For i = 0 To UBound(DataArray)
If i = 0 Then
TempNum = DataArray(i) '第一次
End If
OldNum = IIf(Abs(DataArray(i) - Num) < Abs(OldNum - Num), DataArray(i), OldNum)
Next i
GetMin = OldNum
End Function'数组排序
Sub Sort(List As Variant)
Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp As Integer
First = LBound(List)
Last = UBound(List)
For i = First To Last - 1
For j = i + 1 To Last
If List(i) > List(j) Then
Temp = List(j)
List(j) = List(i)
List(i) = Temp
End If
Next j
Next i
End Sub
Dim n As Integer
Dim i As Integer
Dim m As Integer
Dim tempC As Integer
Dim c As Integer
Temp(0) = 2
Temp(1) = 5
Temp(2) = 7
Temp(3) = 12
n = 3
tempC = 100
For i = 0 To 4
c = Abs(Temp(i) - n)
If tempC > c Then
tempC = c
m = Temp(i)
ElseIf tempC = c Then
If Temp(i) < m Then
m = Temp(i)
End If
End If
Next i
MsgBox m
'set value to array arrFind()
dim i as integer
dim idiv as integer,idiv1 as integer
dim iVal as integer '最接近的值
dim iCheck as integer '要比较的数据
idiv=abs(arrFind(0)-iCheck)
iVal=arrFind(0)
for i=lbound(arrFind())+1 to Ubound(arrFind())
idiv1=abs(arrfind(i)-iCheck)
if idiv1<idiv then
idiv=idiv1
iVal=arrFind(i)
else if idiv1=idiv then
if arrFind(i)<iVal then iVal=arrFind(i)
endif
if idiv=0 then exit for '如果找到一样的数值就退出循环
next i使用这种方法,遍历一遍就行了。