如何在列表框VBA中显示/删除相隔4个单元格的行项目

如何在列表框VBA中显示/删除相隔4个单元格的行项目,vba,excel,Vba,Excel,我有一个列表框,需要显示行中的项目。这里每个项目是4个细胞分开。所以我试着显示它,但它会显示项目和银行单元格。我试图抵消,但没有用 因此,在这里,列表框应该显示这些没有空格的项目A、B、C,并且应该正确地进行删除 我的代码: Sub UserForm_Initialize() Range("B1").Select End Sub Private Sub CommandButton1_Click() If TextBox1.Value = "" Then MsgBox ("Please

我有一个列表框,需要显示行中的项目。这里每个项目是4个细胞分开。所以我试着显示它,但它会显示项目和银行单元格。我试图抵消,但没有用

因此,在这里,列表框应该显示这些没有空格的项目A、B、C,并且应该正确地进行删除

我的代码:

Sub UserForm_Initialize()
Range("B1").Select
End Sub
Private Sub CommandButton1_Click()
If TextBox1.Value = "" Then
    MsgBox ("Please Add something")

Else
    ActiveCell = TextBox1.Value
    ActiveCell.Offset(1, 0).Select
    ActiveCell.Value = "a"
    ActiveCell.Offset(0, 1).Select
    ActiveCell.Value = "b"
    ActiveCell.Offset(0, 1).Select
    ActiveCell.Value = "c"
    ActiveCell.Offset(0, 1).Select
    ActiveCell.Value = "d"

    ActiveCell.Offset(-1, 1).Select

    End If

'For i = 3 To ActiveSheet.Cells(Rows.Count, 3).End(xlUp).Row Step 2       

'Next i
  'ListBox1.RowSource = "Sheet3!1:1" & Range("A" & Column.Count).End(xlUp).Column


  Dim lCol As Long

'Determine last column
lCol = Cells(1, Columns.Count).End(xlToLeft).Column
Dim rngSource As Range
'Set range source data to be included in listbox
Set rngSource = Worksheets("Sheet3").Range(Cells(1, 2), Cells(1, lCol))

'Populate listbox with range source data
'ListBox1.List = rngSource.Cells.Value
Call resetForm

End Sub

尝试以下方法。您可能需要在添加之前清除。这假定是一个表单控件列表框

Option Explicit

Sub test()

Dim myListBox As Object
Set myListBox = ActiveSheet.Shapes("List Box 1").OLEFormat.Object

myListBox.AddItem Range("B1")
myListBox.AddItem Range("F1")
myListBox.AddItem Range("J1")

End Sub
或者找到行中的最后一列,创建从B1到此列的范围,并循环此操作以添加项目:

With ActiveSheet

    Dim loopRange As Range

    Set loopRange = .Range(.Cells(1, 2), .Cells(1, .Cells(1, .Columns.Count).End(xlToLeft).Column)).SpecialCells(xlCellTypeConstants)

End With

Dim currentCell As Range

For Each currentCell In loopRange

    myListBox.AddItem currentCell

Next currentCell

这一个正在工作..但有一个问题。。。它是,首先它会添加a,然后是a,b,然后是a,b,c…最后列表框会是,a,a,b,c,这只发生在底部吗?这实际上是一个列表框吗?它是一个表单控件吗?问题是,我有一个userform,它接受数据并将其添加到这些单元格中。在文本框下方有一个列表框,如果输入错误,我可以在其中删除项目。我很难想象,你能在帖子中添加图像吗?我以为您只是想循环范围并添加非空白项。如果是列表框,则AddItem不会连接后续条目,因为它将移动到下一个条目。所以我猜可能与文本框有关,文本框中的条目可能以某种方式连接在一起(这是一种猜测)。该方法与您在这里发表的文章类似吗