一般大家都使用GetTickCount来计算某段代码运行所耗费的时间,但此函数的结果并不准确,其实使用系统时钟频率来计算要准确得多,甚至可以计算出一行代码的运行时间,下面的代码是我给CSDN的一个贴子的回复: Option Explicit Private Declare Function QueryPerformanceCounter Lib "kernel32" (lpPerformanceCount As Currency) As Long Private Declare Function QueryPerformanceFrequency Lib "kernel32" (lpFrequency As Currency) As Long Private Type LARGE_INTEGER lowpart As Long highpart As Long End Type Private Sub Form_Load() Dim cyFreq As Currency Dim cyFreqPerMillisecond As Currency Dim cyStartTime As Currency, cyEndTime As Currency '获得1毫秒内系统时钟振动频率 QueryPerformanceFrequency cyFreq cyFreqPerMillisecond = cyFreq / 1000 QueryPerformanceCounter cyStartTime Dim str As String, iBegin As Integer, iEnd As Integer, strTemp1 As String, strTemp2 As String str = "*88*1171>cre_46t*4444*h=468fskfjsdkfjsdkfjsdkf*ffff*fsdkfjsdkfjsdkfjsdkfj*33333333433*jjjjdddddq" Do While (True) iBegin = InStr(1, str, "*") If iBegin <= 0 Then Exit Do iEnd = InStr(iBegin + 1, str, "*") If iEnd <= 0 Then Exit Do strTemp1 = Mid(str, 1, iBegin - 1) strTemp2 = Mid(str, iEnd + 1, Len(str) - iEnd) str = strTemp1 & "AA" & strTemp2 DoEvents Loop QueryPerformanceCounter cyEndTime Debug.Print "耗时:" & Round((cyEndTime - cyStartTime) / cyFreqPerMillisecond, 2) & "毫秒" End Sub