Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.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 - Fatal编程技术网

Excel 如何搜索指定列?

Excel 如何搜索指定列?,excel,vba,Excel,Vba,我想根据列号“C”搜索数据 选项显式 专用子文本框1_Change() Me.TextBox1=格式(StrConv(Me.TextBox1,大写)) 将sh设置为工作表 设置sh=板材(“板材2”) 我想我会坚持多久 暗x等长 变暗p为长 Me.ListBox1.Clear '显示标题 Me.ListBox1.AddItem“产品名称” Me.ListBox1.List(ListBox1.ListCount-1,1)=“HSN代码” Me.ListBox1.List(ListBox1.List

我想根据列号“C”搜索数据

选项显式
专用子文本框1_Change()
Me.TextBox1=格式(StrConv(Me.TextBox1,大写))
将sh设置为工作表
设置sh=板材(“板材2”)
我想我会坚持多久
暗x等长
变暗p为长
Me.ListBox1.Clear
'显示标题
Me.ListBox1.AddItem“产品名称”
Me.ListBox1.List(ListBox1.ListCount-1,1)=“HSN代码”
Me.ListBox1.List(ListBox1.ListCount-1,2)=“数量”
Me.ListBox1.List(ListBox1.ListCount-1,3)=“速率”
Me.ListBox1.List(ListBox1.ListCount-1,4)=“GST”
Me.ListBox1.List(ListBox1.ListCount-1,5)=“总计”
Me.ListBox1.Selected(0)=True
对于i=2到sh.Range(“B”和Rows.Count).End(xlUp).Row
对于x=1到Len(sh.Cells(i,2))
p=Me.TextBox1.TextLength
如果UCase(Mid(sh.Cells(i,2),x,p))=Me.TextBox1和Me.TextBox1“”,则
使用ListBox1
.AddItem sh.Cells(i,2)
.List(ListBox1.ListCount-1,1)=sh.Cells(i,3)
.List(ListBox1.ListCount-1,2)=sh.Cells(i,4)
.List(ListBox1.ListCount-1,3)=sh.Cells(i,5)
.List(ListBox1.ListCount-1,4)=sh.Cells(i,6)
.List(ListBox1.ListCount-1,5)=sh.Cells(i,7)
以
如果结束
下一个x
接下来我
端接头
在第一列“B”的基础上显示结果

我想在“C”列的基础上搜索

Excel sheet2数据:

当我在文本框HSN1中输入数据时,数据应显示在列表框中,而不是基于AB

我的输出:当我在文本框中输入HSN2时

输出:

(sh.Cells(i,2)
正在查看列“B”的值

尝试改用
sh.Range(“C”和i).Value

请参阅下面的修改代码部分:

With Me.ListBox1
    .Clear

    'Display Header
    .AddItem "Product Name"
    .List(.ListCount - 1, 1) = "HSN Code"
    .List(.ListCount - 1, 2) = "Quantity"
    .List(.ListCount - 1, 3) = "Rate"
    .List(.ListCount - 1, 4) = "GST"
    .List(.ListCount - 1, 5) = "Total"

    .Selected(0) = True
End With

For i = 2 To sh.Range("B" & Rows.Count).End(xlUp).Row
    For x = 1 To Len(sh.Range("C" & i).Value)
        p = Me.TextBox1.TextLength

        If UCase(Mid(sh.Range("C" & i).Value, x, p)) = Me.TextBox1 And Me.TextBox1 <> "" Then
            With ListBox1
                .AddItem sh.Range("B" & i).Value
                .List(.ListCount - 1, 1) = sh.Range("C" & i).Value
                .List(.ListCount - 1, 2) = sh.Range("D" & i).Value
                .List(.ListCount - 1, 3) = sh.Range("E" & i).Value
                .List(.ListCount - 1, 4) = sh.Range("F" & i).Value
                .List(.ListCount - 1, 5) = sh.Range("G" & i).Value
            End With
        End If
    Next x
Next i
With Me.ListBox1
清楚的
'显示标题
.AddItem“产品名称”
.List(.ListCount-1,1)=“HSN代码”
.List(.ListCount-1,2)=“数量”
.List(.ListCount-1,3)=“速率”
.List(.ListCount-1,4)=“GST”
.List(.ListCount-1,5)=“总计”
.所选(0)=真
以
对于i=2到sh.Range(“B”和Rows.Count).End(xlUp).Row
对于x=1到Len(sh.Range(“C”)和i.Value)
p=Me.TextBox1.TextLength
如果UCase(Mid(sh.Range(“C”&i).Value,x,p))=Me.TextBox1和Me.TextBox1“,则
使用ListBox1
.AddItem sh.Range(“B”和i).值
.List(.ListCount-1,1)=sh.Range(“C”和i).Value
.List(.ListCount-1,2)=sh.Range(“D”和i).Value
.List(.ListCount-1,3)=sh.Range(“E”和i).Value
.List(.ListCount-1,4)=sh.Range(“F”&i).Value
.List(.ListCount-1,5)=sh.Range(“G”和i).Value
以
如果结束
下一个x
接下来我
结果的屏幕截图:
(sh.Cells(i,2)
正在查看列“B”的值

尝试改用
sh.Range(“C”和i).Value

请参阅下面的修改代码部分:

With Me.ListBox1
    .Clear

    'Display Header
    .AddItem "Product Name"
    .List(.ListCount - 1, 1) = "HSN Code"
    .List(.ListCount - 1, 2) = "Quantity"
    .List(.ListCount - 1, 3) = "Rate"
    .List(.ListCount - 1, 4) = "GST"
    .List(.ListCount - 1, 5) = "Total"

    .Selected(0) = True
End With

For i = 2 To sh.Range("B" & Rows.Count).End(xlUp).Row
    For x = 1 To Len(sh.Range("C" & i).Value)
        p = Me.TextBox1.TextLength

        If UCase(Mid(sh.Range("C" & i).Value, x, p)) = Me.TextBox1 And Me.TextBox1 <> "" Then
            With ListBox1
                .AddItem sh.Range("B" & i).Value
                .List(.ListCount - 1, 1) = sh.Range("C" & i).Value
                .List(.ListCount - 1, 2) = sh.Range("D" & i).Value
                .List(.ListCount - 1, 3) = sh.Range("E" & i).Value
                .List(.ListCount - 1, 4) = sh.Range("F" & i).Value
                .List(.ListCount - 1, 5) = sh.Range("G" & i).Value
            End With
        End If
    Next x
Next i
With Me.ListBox1
清楚的
'显示标题
.AddItem“产品名称”
.List(.ListCount-1,1)=“HSN代码”
.List(.ListCount-1,2)=“数量”
.List(.ListCount-1,3)=“速率”
.List(.ListCount-1,4)=“GST”
.List(.ListCount-1,5)=“总计”
.所选(0)=真
以
对于i=2到sh.Range(“B”和Rows.Count).End(xlUp).Row
对于x=1到Len(sh.Range(“C”)和i.Value)
p=Me.TextBox1.TextLength
如果UCase(Mid(sh.Range(“C”&i).Value,x,p))=Me.TextBox1和Me.TextBox1“,则
使用ListBox1
.AddItem sh.Range(“B”和i).值
.List(.ListCount-1,1)=sh.Range(“C”和i).Value
.List(.ListCount-1,2)=sh.Range(“D”和i).Value
.List(.ListCount-1,3)=sh.Range(“E”和i).Value
.List(.ListCount-1,4)=sh.Range(“F”&i).Value
.List(.ListCount-1,5)=sh.Range(“G”和i).Value
以
如果结束
下一个x
接下来我
结果的屏幕截图:

您想做什么?能否显示您的预期输出(列表框方案)?。@Harun24HR查看输出我已用预期输出更新了问题…我已用黄色突出显示它以供参考…当我输入HSN2时,记录应显示在列表框中…当我输入AB1…或AB2…时,整个代码工作正常…但我想在“C”列的基础上搜索和显示哪个是HSN代码?你想做什么?你能显示你的预期输出吗(列表框场景)?。@Harun24HR查看输出我已用预期输出更新了问题…我已用黄色突出显示它供您参考…当我输入HSN2时,记录应显示在列表框中…当我输入AB1…或AB2…时,整个代码工作正常…但我想搜索并显示在“C”列(HSN代码)的基础上