用户窗体中的列表框未显示整行值
ListBox within userform is not showing full row of values
我制作了一个用户表单 Userform,我用它来过滤一组数据并返回适合这些选择的选择。过滤工作;但是,当我将过滤后的 table 添加到列表框 (SelectHousingList) 时,它会切断最后一列。下面的代码显示我已将列表框设置为有 10 列,并且它还有一个水平滚动条。
Private Sub AttenuationList_Click()
SelectedAttenuationText.Value = AttenuationList.Text
Worksheets("FSC PSC PFC").Range("J3").Value = SelectedAttenuationText.Value
End Sub
Private Sub CatalystDiameterList_Click()
SelectedCatalystDiameterText.Value = CatalystDiameterList.Text
Worksheets("FSC PSC PFC").Range("H3").Value = SelectedCatalystDiameterText.Value
End Sub
Private Sub ConfigurationList_Click()
SelectedConfigurationText.Value = ConfigurationList.Text
Worksheets("FSC PSC PFC").Range("L3").Value = SelectedConfigurationText.Value
End Sub
Private Sub FilterButton_Click()
Dim ws As Worksheet
Set ws = Sheet2
SelectHousingList.Clear
Worksheets("FSC PSC PFC").Range("B6:Z10000").AutoFilter Field:=1, Criteria1:=Worksheets("FSC PSC PFC").Range("B3")
Worksheets("FSC PSC PFC").Range("B6:Z10000").AutoFilter Field:=7, Criteria1:=Worksheets("FSC PSC PFC").Range("H3")
Worksheets("FSC PSC PFC").Range("B6:Z10000").AutoFilter Field:=9, Criteria1:=Worksheets("FSC PSC PFC").Range("J3")
Worksheets("FSC PSC PFC").Range("B6:Z10000").AutoFilter Field:=11, Criteria1:=Worksheets("FSC PSC PFC").Range("L3")
Set Rng = Worksheets("FSC PSC
PFC").Range("B5:B1000").SpecialCells(xlCellTypeVisible)
With SelectHousingList
.ColumnCount = 10
For Each Cel1 In Rng
.AddItem CStr(Cel1.Value)
.List(.ListCount - 1, 1) = Cel1.Offset(0, 1).Value
.List(.ListCount - 1, 2) = Cel1.Offset(0, 2).Value
.List(.ListCount - 1, 3) = Cel1.Offset(0, 3).Value
.List(.ListCount - 1, 4) = Cel1.Offset(0, 4).Value
.List(.ListCount - 1, 5) = Cel1.Offset(0, 5).Value
Next Cel1
End With
End Sub
Private Sub HousingTypeList_Click()
SelectedHousingText.Value = HousingTypeList.Text
Worksheets("FSC PSC PFC").Range("B3").Value =
SelectedHousingText.Value
CatalystDiameterList.Clear
lastrow = Sheet2.Cells(Rows.Count, 5).End(xlUp).Row
curVal = Me.HousingTypeList.Value
For x = 6 To lastrow
If Worksheets("FSC PSC PFC").Cells(x, "B") = curVal Then
Me.CatalystDiameterList.AddItem Worksheets("FSC PSC
PFC").Cells(x, "H")
End If
Next x
End Sub
Private Sub MaterialList_Click()
SelectedMaterialText.Value = MaterialList.Text
Worksheets("FSC PSC PFC").Range("D4").Value =
SelectedMaterialText.Value
End Sub
Private Sub ResetButton_Click()
SelectHousingList.Clear
CatalystDiameterList.Clear
SelectedCatalystDiameterText = ""
On Error Resume Next
Worksheets("FSC PSC PFC").ShowAllData
On Error GoTo 0
End Sub
Private Sub SelectHousingList_Click()
End Sub
Private Sub UserForm_Initialize()
'ADDING DIFFERENT HOUSING STYLES TO CHOOSE FROM
HousingTypeList.AddItem "(FSC) Catalyst Housing"
HousingTypeList.AddItem "(PFC) Catalyst Housing"
HousingTypeList.AddItem "(PSC) Catalyst Housing"
'ADDING DIFFERENT ATTENUATION GRADES TO CHOOSE
AttenuationList.AddItem "Critical"
AttenuationList.AddItem "Hospital"
AttenuationList.AddItem "Converter Only"
'ADDING DIFFERENT CONFIGURATIONS TO CHOOSE
ConfigurationList.AddItem "EIEO"
ConfigurationList.AddItem "EISO"
ConfigurationList.AddItem "SIEO"
ConfigurationList.AddItem "SISO"
'ADDING DIFFERENT MATERIALS TO CHOOSE
MaterialList.AddItem "CS/CS"
MaterialList.AddItem "SS/CS"
MaterialList.AddItem "SS/SS"
End Sub
Any/All 帮助感谢。
没关系,我的 FilterButton 代码有一个错误,在单击过滤器按钮后,我只向 listobx 添加了 5 个值。我的错误,但它仍然只能在评论中提到的列表框中有 9 列。
Private Sub FilterButton_Click()
Dim ws As Worksheet
Set ws = Sheet2
SelectHousingList.Clear
Worksheets("FSC PSC PFC").Range("B6:Z10000").AutoFilter Field:=1, Criteria1:=Worksheets("FSC PSC PFC").Range("B3")
Worksheets("FSC PSC PFC").Range("B6:Z10000").AutoFilter Field:=7, Criteria1:=Worksheets("FSC PSC PFC").Range("H3")
Worksheets("FSC PSC PFC").Range("B6:Z10000").AutoFilter Field:=9, Criteria1:=Worksheets("FSC PSC PFC").Range("J3")
Worksheets("FSC PSC PFC").Range("B6:Z10000").AutoFilter Field:=11, Criteria1:=Worksheets("FSC PSC PFC").Range("L3")
Set Rng = Worksheets("FSC PSC PFC").Range("B5:B1000").SpecialCells(xlCellTypeVisible)
With SelectHousingList
.ColumnCount = 14
For Each Cel1 In Rng
.AddItem CStr(Cel1.Value)
**.List(.ListCount - 1, 1) = Cel1.Offset(0, 1).Value
.List(.ListCount - 1, 2) = Cel1.Offset(0, 2).Value
.List(.ListCount - 1, 3) = Cel1.Offset(0, 3).Value
.List(.ListCount - 1, 4) = Cel1.Offset(0, 4).Value
.List(.ListCount - 1, 5) = Cel1.Offset(0, 5).Value
.List(.ListCount - 1, 6) = Cel1.Offset(0, 6).Value
.List(.ListCount - 1, 7) = Cel1.Offset(0, 7).Value
.List(.ListCount - 1, 8) = Cel1.Offset(0, 8).Value
.List(.ListCount - 1, 9) = Cel1.Offset(0, 9).Value**
Next Cel1
End With
End Sub
抱歉给您带来的不便,只是换了个角度来看。
谢谢大家!
我制作了一个用户表单 Userform,我用它来过滤一组数据并返回适合这些选择的选择。过滤工作;但是,当我将过滤后的 table 添加到列表框 (SelectHousingList) 时,它会切断最后一列。下面的代码显示我已将列表框设置为有 10 列,并且它还有一个水平滚动条。
Private Sub AttenuationList_Click()
SelectedAttenuationText.Value = AttenuationList.Text
Worksheets("FSC PSC PFC").Range("J3").Value = SelectedAttenuationText.Value
End Sub
Private Sub CatalystDiameterList_Click()
SelectedCatalystDiameterText.Value = CatalystDiameterList.Text
Worksheets("FSC PSC PFC").Range("H3").Value = SelectedCatalystDiameterText.Value
End Sub
Private Sub ConfigurationList_Click()
SelectedConfigurationText.Value = ConfigurationList.Text
Worksheets("FSC PSC PFC").Range("L3").Value = SelectedConfigurationText.Value
End Sub
Private Sub FilterButton_Click()
Dim ws As Worksheet
Set ws = Sheet2
SelectHousingList.Clear
Worksheets("FSC PSC PFC").Range("B6:Z10000").AutoFilter Field:=1, Criteria1:=Worksheets("FSC PSC PFC").Range("B3")
Worksheets("FSC PSC PFC").Range("B6:Z10000").AutoFilter Field:=7, Criteria1:=Worksheets("FSC PSC PFC").Range("H3")
Worksheets("FSC PSC PFC").Range("B6:Z10000").AutoFilter Field:=9, Criteria1:=Worksheets("FSC PSC PFC").Range("J3")
Worksheets("FSC PSC PFC").Range("B6:Z10000").AutoFilter Field:=11, Criteria1:=Worksheets("FSC PSC PFC").Range("L3")
Set Rng = Worksheets("FSC PSC
PFC").Range("B5:B1000").SpecialCells(xlCellTypeVisible)
With SelectHousingList
.ColumnCount = 10
For Each Cel1 In Rng
.AddItem CStr(Cel1.Value)
.List(.ListCount - 1, 1) = Cel1.Offset(0, 1).Value
.List(.ListCount - 1, 2) = Cel1.Offset(0, 2).Value
.List(.ListCount - 1, 3) = Cel1.Offset(0, 3).Value
.List(.ListCount - 1, 4) = Cel1.Offset(0, 4).Value
.List(.ListCount - 1, 5) = Cel1.Offset(0, 5).Value
Next Cel1
End With
End Sub
Private Sub HousingTypeList_Click()
SelectedHousingText.Value = HousingTypeList.Text
Worksheets("FSC PSC PFC").Range("B3").Value =
SelectedHousingText.Value
CatalystDiameterList.Clear
lastrow = Sheet2.Cells(Rows.Count, 5).End(xlUp).Row
curVal = Me.HousingTypeList.Value
For x = 6 To lastrow
If Worksheets("FSC PSC PFC").Cells(x, "B") = curVal Then
Me.CatalystDiameterList.AddItem Worksheets("FSC PSC
PFC").Cells(x, "H")
End If
Next x
End Sub
Private Sub MaterialList_Click()
SelectedMaterialText.Value = MaterialList.Text
Worksheets("FSC PSC PFC").Range("D4").Value =
SelectedMaterialText.Value
End Sub
Private Sub ResetButton_Click()
SelectHousingList.Clear
CatalystDiameterList.Clear
SelectedCatalystDiameterText = ""
On Error Resume Next
Worksheets("FSC PSC PFC").ShowAllData
On Error GoTo 0
End Sub
Private Sub SelectHousingList_Click()
End Sub
Private Sub UserForm_Initialize()
'ADDING DIFFERENT HOUSING STYLES TO CHOOSE FROM
HousingTypeList.AddItem "(FSC) Catalyst Housing"
HousingTypeList.AddItem "(PFC) Catalyst Housing"
HousingTypeList.AddItem "(PSC) Catalyst Housing"
'ADDING DIFFERENT ATTENUATION GRADES TO CHOOSE
AttenuationList.AddItem "Critical"
AttenuationList.AddItem "Hospital"
AttenuationList.AddItem "Converter Only"
'ADDING DIFFERENT CONFIGURATIONS TO CHOOSE
ConfigurationList.AddItem "EIEO"
ConfigurationList.AddItem "EISO"
ConfigurationList.AddItem "SIEO"
ConfigurationList.AddItem "SISO"
'ADDING DIFFERENT MATERIALS TO CHOOSE
MaterialList.AddItem "CS/CS"
MaterialList.AddItem "SS/CS"
MaterialList.AddItem "SS/SS"
End Sub
Any/All 帮助感谢。
没关系,我的 FilterButton 代码有一个错误,在单击过滤器按钮后,我只向 listobx 添加了 5 个值。我的错误,但它仍然只能在评论中提到的列表框中有 9 列。
Private Sub FilterButton_Click()
Dim ws As Worksheet
Set ws = Sheet2
SelectHousingList.Clear
Worksheets("FSC PSC PFC").Range("B6:Z10000").AutoFilter Field:=1, Criteria1:=Worksheets("FSC PSC PFC").Range("B3")
Worksheets("FSC PSC PFC").Range("B6:Z10000").AutoFilter Field:=7, Criteria1:=Worksheets("FSC PSC PFC").Range("H3")
Worksheets("FSC PSC PFC").Range("B6:Z10000").AutoFilter Field:=9, Criteria1:=Worksheets("FSC PSC PFC").Range("J3")
Worksheets("FSC PSC PFC").Range("B6:Z10000").AutoFilter Field:=11, Criteria1:=Worksheets("FSC PSC PFC").Range("L3")
Set Rng = Worksheets("FSC PSC PFC").Range("B5:B1000").SpecialCells(xlCellTypeVisible)
With SelectHousingList
.ColumnCount = 14
For Each Cel1 In Rng
.AddItem CStr(Cel1.Value)
**.List(.ListCount - 1, 1) = Cel1.Offset(0, 1).Value
.List(.ListCount - 1, 2) = Cel1.Offset(0, 2).Value
.List(.ListCount - 1, 3) = Cel1.Offset(0, 3).Value
.List(.ListCount - 1, 4) = Cel1.Offset(0, 4).Value
.List(.ListCount - 1, 5) = Cel1.Offset(0, 5).Value
.List(.ListCount - 1, 6) = Cel1.Offset(0, 6).Value
.List(.ListCount - 1, 7) = Cel1.Offset(0, 7).Value
.List(.ListCount - 1, 8) = Cel1.Offset(0, 8).Value
.List(.ListCount - 1, 9) = Cel1.Offset(0, 9).Value**
Next Cel1
End With
End Sub
抱歉给您带来的不便,只是换了个角度来看。
谢谢大家!