我的代码片段供参考
Private Sub RefreshLstVw()
'aryFTUInfo
Dim FtuArrDownMrk As Long
Dim FtuArrUpMrk As Long
Dim FtuArrCount As Long
Dim FtuCodeKey As String
Dim I As Long, J As Long
Dim LstItm As MSComctlLib.ListItem
Dim FtuExistInLstVw As Long
Dim FtuExistInArr As Boolean
Dim FndFtuCode As String
Dim TotalPw As Single
Static DelMrk As String
Dim ExistDspArr As Boolean
Dim DspI As Integer, DspFtuArrDownMrk As Integer, DspFtuArrUpMrk As Integer
Dim VUsrNm As String
On Error Resume Next
If DelMrk = "" Then '更替删除标志
DelMrk = " "
Else
DelMrk = ""
End If
On Error GoTo 0
If FtuArrUpMrk < FtuArrDownMrk Then
LstVwFtu.ListItems.Clear
End If
For I = FtuArrDownMrk To FtuArrUpMrk
ExistDspArr = False
VUsrNm = ""
For DspI = DspFtuArrDownMrk To DspFtuArrUpMrk
If aryFTUInfo(I).FTUData.FtuCode = DsparyFTUInfo(DspI).FtuCode Then
VUsrNm = DsparyFTUInfo(DspI).UserName
ExistDspArr = True
Exit For
End If
Next DspI
If ExistDspArr = True Then
FndFtuCode = "Ftu" + CStr(aryFTUInfo(I).FTUData.FtuCode)
FtuExistInLstVw = 0
For J = 1 To LstVwFtu.ListItems.Count
If LstVwFtu.ListItems(J).Key = FndFtuCode Then
FtuExistInLstVw = J
Exit For
End If
Next J
If FtuExistInLstVw = 0 Then
Set LstItm = LstVwFtu.ListItems.Add()
LstItm.Key = FndFtuCode
LstItm.Text = CStr(aryFTUInfo(I).FTUData.FtuCode)
LstItm.SubItems(1) = VUsrNm
Else
Set LstItm = LstVwFtu.ListItems(J)
End If
'=======================================================================
If LstItm.SubItems(18) <> Format(aryFTUInfo(I).FTUData.SaveTime, "hh:mm:ss") Then
LstItm.SubItems(18) = Format(aryFTUInfo(I).FTUData.SaveTime, "hh:mm:ss")