Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 使用循环填充列表框,同时忽略空格_Excel_Vba_Listbox - Fatal编程技术网

Excel 使用循环填充列表框,同时忽略空格

Excel 使用循环填充列表框,同时忽略空格,excel,vba,listbox,Excel,Vba,Listbox,我试图使用p列中的项目填充列表框,我希望忽略空白 Private Sub UserForm_Initialize() Dim strItem As String Dim i As Long For i = 1 To 500 If Cells(i, 16).Value = "" Then Else strItem = Selection.Value Debug.Print strItem

我试图使用p列中的项目填充列表框,我希望忽略空白

Private Sub UserForm_Initialize()
    Dim strItem As String
    Dim i As Long
    For i = 1 To 500

        If Cells(i, 16).Value = "" Then

        Else
            strItem = Selection.Value
            Debug.Print strItem
            lbxItems.AddItem strItem.Value

        End If


End Sub

当我填充列表框时,它全部显示为空白。我希望用列中的项目填充它。

您实际上从未更改代码中的选择。您希望此行位于
P(i)
,但它保持在启动宏时选择的位置:

strItem = Selection.Value
要显示这一点,请将此行添加到
FOR
循环中:

Debug.Print Selection.Address
要解决此问题,请更改选择单元格的方式:

strItem = Cells(i, 16).Value
您的sub现在应该是:

Private Sub UserForm_Initialize()
    Dim strItem As String
    Dim i As Long
    For i = 1 To 10
        '' Debugging only:
        '' Debug.Print Selection.Address
        If Cells(i, 16).Value <> "" Then
            strItem = Cells(i, 16).Value
            Debug.Print strItem
            lbxItems.AddItem strItem
        End If
    Next

End Sub
Private子用户表单_Initialize()
像弦一样的暗条纹
我想我会坚持多久
对于i=1到10
“”仅用于调试:
“”调试。打印选择。地址
如果单元格(i,16)。值为“”,则
strItem=单元格(i,16)。值
调试.打印横线
lbxItems.AddItem strItem
如果结束
下一个
端接头

请注意,我还更改了添加到列表框中的内容(如
{string}。值
无效),并反转了
IF
,以防止出现空的
true
-块。

您实际上从未更改代码中的选择。您希望此行位于
P(i)
,但它保持在启动宏时选择的位置:

strItem = Selection.Value
要显示这一点,请将此行添加到
FOR
循环中:

Debug.Print Selection.Address
要解决此问题,请更改选择单元格的方式:

strItem = Cells(i, 16).Value
您的sub现在应该是:

Private Sub UserForm_Initialize()
    Dim strItem As String
    Dim i As Long
    For i = 1 To 10
        '' Debugging only:
        '' Debug.Print Selection.Address
        If Cells(i, 16).Value <> "" Then
            strItem = Cells(i, 16).Value
            Debug.Print strItem
            lbxItems.AddItem strItem
        End If
    Next

End Sub
Private子用户表单_Initialize()
像弦一样的暗条纹
我想我会坚持多久
对于i=1到10
“”仅用于调试:
“”调试。打印选择。地址
如果单元格(i,16)。值为“”,则
strItem=单元格(i,16)。值
调试.打印横线
lbxItems.AddItem strItem
如果结束
下一个
端接头
请注意,我还更改了添加到列表框中的内容(如
{string}。value
无效),并反转了
IF
,以防止出现空的
true
-块