gpt4 book ai didi

vba - 列表框下标超出范围excel vba

转载 作者:行者123 更新时间:2023-12-04 20:34:47 25 4
gpt4 key购买 nike

我正在尝试拆分列表框中的项目,以便我只显示到第一个换行符,但是看起来下标超出了范围,我无法查明错误。

Private Sub DisplayTasksInListView()
Dim i As Integer
Dim taskList As Variant
Dim taskItem As Variant

With ListBoxTask
ListBoxTask.Clear
taskList = ActiveSheet.Range("B3:B5")
For Each taskItem In taskList
ListBoxTask.AddItem Split(taskItem, Chr(10))(0)
Next taskItem
End With
End Sub

最佳答案

除了@Variatus 的建议 - 如果您使用正确的数据类型创建变量,那么您的代码基本上是可以的。 taskListtaskItem应该是 Range 类型.对于单元格,您可以显式引用 Value属性 Range并将其传递给 Split .

我还添加了一种获取 ListBox 的方法按名称,而不是直接引用它。如果需要,这将使您的代码模块化变得更加容易。

Option Explicit

Sub FillListBox()

Dim ws As Worksheet
Dim rngTaskList As Range
Dim rngTaskItem As Range
Dim lstTasks As MSForms.ListBox

Set ws = ThisWorkbook.Worksheets("Sheet1") '<-- change for your sheet
Set rngTaskList = ws.Range("B1:B5") '<-- change for your range
Set lstTasks = ws.OLEObjects("ListBox1").Object.Value '<-- change for your listbox name

With lstTasks
.Clear
For Each rngTaskItem In rngTaskList
.AddItem Split(rngTaskItem.Value, vbLf)(0)
Next rngTaskItem
End With

End Sub

enter image description here

关于vba - 列表框下标超出范围excel vba,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43927779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com