Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.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,我在我的程序中使用此代码在excel工作表中搜索,但仅在A1列中搜索,如果我想添加命令或函数以帮助在A1、B1、C1…列之间进行更改,请提前感谢 Private Sub cmdsearch_Click() blnNew = False txtChem1.Text = "" txtChem2.Text = "" txtChem3.Text = "" TRows = Worksheets("Data").Range("A1").CurrentR

我在我的程序中使用此代码在excel工作表中搜索,但仅在A1列中搜索,如果我想添加命令或函数以帮助在A1、B1、C1…列之间进行更改,请提前感谢

Private Sub cmdsearch_Click()
    blnNew = False
        txtChem1.Text = ""
        txtChem2.Text = ""
        txtChem3.Text = ""
TRows = Worksheets("Data").Range("A1").CurrentRegion.Rows.Count            
    For i = 2 To TRows
        If Val(Trim(ComboBox1.Text)) = Val(Trim(Worksheets("Data").Cells(i, 1).Value)) Then    
        txtChem1.Text = Worksheets("Data").Cells(i, 1).Value
        txtChem2.Text = Worksheets("Data").Cells(i, 2).Value
        txtChem3.Text = Worksheets("Data").Cells(i, 3).Value  
        Exit For
        End If    
    Next i
    If Trim(txtChem1.Text) = "" Then
        cmdSave.Enabled = False
        cmdDelete.Enabled = False
        Frame2.Enabled = False
    Else
        cmdSave.Enabled = True
        cmdDelete.Enabled = True
        Frame2.Enabled = True
    End If
End Sub

您好,您可以创建一个与此相同的函数:

Sub Search(CellParams)
 blnNew = False
        txtChem1.Text = ""
        txtChem2.Text = ""
        txtChem3.Text = ""
TRows = Worksheets("Data").Range(CellParams).CurrentRegion.Rows.Count            
    For i = 2 To TRows
        If Val(Trim(ComboBox1.Text)) = Val(Trim(Worksheets("Data").Cells(i, 1).Value)) Then    
        txtChem1.Text = Worksheets("Data").Cells(i, 1).Value
        txtChem2.Text = Worksheets("Data").Cells(i, 2).Value
        txtChem3.Text = Worksheets("Data").Cells(i, 3).Value  
        Exit For
        End If    
    Next i
    If Trim(txtChem1.Text) = "" Then
        cmdSave.Enabled = False
        cmdDelete.Enabled = False
        Frame2.Enabled = False
    Else
        cmdSave.Enabled = True
        cmdDelete.Enabled = True
        Frame2.Enabled = True
    End If
End Sub
在按钮中,您可以使用:

Private Sub cmdsearch_Click()
   Search("A1")
End Sub

否,这仍将仅在列A中搜索。将
Val(Trim(工作表(“数据”).Cells(i,1.Value))
更改为
Val(Trim(工作表(“数据”).Cells(i,CellParams.Column.Value))
。嗨,谢谢你们的回答,我已经尝试了这两种方法,但都不起作用,如果我想在代码中添加一个允许我在列之间切换的命令,我该怎么做,提前谢谢你们。