我这里有一个按人名过滤的列表框。当从组合框中选择名称时,列表框将正确填充。我想要实现的是,当显示列表框时,它应该将时间条目放在零中(见图 3)。
在 Excel 工作表中手动编码:
Implementation || Arizona || New York || Louisiana|| Michigan
Total Hours Worked (hh:mm:ss) || 0 || 0 || 0 || 0
Average Hours (hh:mm:ss) || 0 || 0 || 0 || 0
这是我对选择名称 2 的期望结果:
这是我选择名称 1 时得到的结果。
这是我选择名称 2 时得到的结果。
这是我将列表框保存到工作表的代码:
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Sheet4")
Dim n As Long
For n = 1 To Me.ListBox2.ListCount - 1
sh.Range("A" & Rows.Count).End(xlUp).ClearContents
sh.Range("A" & Rows.Count).End(xlUp).Offset(1, 0) = Me.ListBox2.List(n, 0)
sh.Range("A" & Rows.Count).End(xlUp).Offset(0, 1) = Me.ListBox2.List(n, 1)
sh.Range("A" & Rows.Count).End(xlUp).Offset(0, 2) = Me.ListBox2.List(n, 2)
Next n
我这里有一个图表就绪代码,但当用于将列表框条目保存到 Excel 的代码已经修复时,我只会使用它。
'Dim CurrentFileName As String
'CurrentFileName = ThisWorkbook.Path & "\current.gif"
'Dim CurrentChart As Chart
'Set CurrentChart = ThisWorkbook.Sheets("Sheet4").ChartObjects("Chart 1").Chart
'CurrentChart.Export Filename:=CurrentFileName, FilterName:="GIF"
'UserForm3.Image1.Picture = LoadPicture(CurrentFileName)
请告诉我哪里错了。 TY
请尝试一下。
Private Sub CommandButton1_Click()
Dim sh As Worksheet, c As Range
Dim n As Long
Set sh = ThisWorkbook.Sheets("Sheet4")
With Me.ListBox2
For n = 1 To .ListCount - 1
Set c = sh.Range("1:1").Find(.List(n, 0), , xlValues, xlWhole)
If Not c Is Nothing Then
c.Offset(1, 0).Value = .List(n, 1)
c.Offset(2, 0).Value = .List(n, 2)
End If
Next n
End With
End Sub