【问题标题】:Remove Item from Excel Listbox从 Excel 列表框中删除项目
【发布时间】:2018-11-30 08:50:34
【问题描述】:

在某些条件下,我需要使用 Range 中的数据从列表框中删除项目。我不想删除列表框所基于的工作表中的数据。

这是我的代码的摘录:

 Me.LstWSource.RowSource = ""

 If Len(rRange.Offset(1, 0).Formula) > 0 Then
    Set rRange = ThisWorkbook.Sheets(G_sNameReferenceS).Range(rRange.Offset(1, 0), rRange.End(xlDown))

 With Me.LstWSource
  .ColumnWidths = "28pt"
  .RowSource = rRange.Address
  .ListIndex = -1
  End With '>>>
End If

  '>>>>>>>>>>>>>>>>>>>>>>>>
  sRet = fG_SortingBasicS("lstYear", "DESC")
  '>>>>>>>>>>>>>>>>>>>>>>>>

  For i = Me.LstWSource.ListCount - 1 To 0 Step -1

   '>> current string condition to delete Item <<
   If Me.LstWSource.List(i) > CStr(Year(G_datJourTraitee)) Then
     Me.LstWSource.RemoveItem (i)
   End If
 Next i

错误是由 RemoveItem 触发的。

【问题讨论】:

    标签: excel vba listbox


    【解决方案1】:

    如果您使用.RowSource 填充您的列表框,您将无法从列表中删除列表项。

    因此,您需要使用LstWSource.AddItem 填写您的列表。循环遍历您的范围并根据您的条件将每个项目添加到您的 ListBox。另见Adding items in a Listbox with multiple columns

    【讨论】:

    • 感谢您的回答@PEH
    • 我做检查。
    【解决方案2】:

    有关其他信息并带来与减缓填充相关的明确解决方案:我曾经使用读取 Range 单元格来填充动态数组。然后,我使用这个数组来排除或包含另一个数组中的行。

    这些是要考虑的行:

    J = 1
    For i = LBound(G_varListYears) To UBound(G_varListYears)
    
    If G_varListYears(i) <= CStr(Year(G_datJourTraitee)) Then
      '>>>
      ReDim Preserve vListTMP(J)
      vListTMP(J) = G_varListYears(i)
      J = J + 1
      '>>
    ElseIf (Me.chkNextYear = True) And ((Month(G_datJourTraitee) = 11 Or Month(G_datJourTraitee) = 12) And (G_varListYears(i) = CStr(Year(G_datJourTraitee) + 1))) Then
      '>>>
      ReDim Preserve vListTMP(J)
      vListTMP(J) = G_varListYears(i)
      J = J + 1
      '>>
    Else
      '>>
    End If
    
    Next i
    
    With Me.LstWSource
      .ColumnWidths = "28pt"
      .List = vListTMP()
      .ListIndex = -1
    End With '>>>
    

    希望它也会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-07
      • 2010-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多