打开excel并查找值,返回下一列

时间:2017-08-10 08:14:31

标签: excel vba excel-vba

我想创建一个打开Excel工作表的脚本,在列中找到一个值' A'并返回“' B'列中的文字! 在GE的iFIX中使用VBA! 当我想申报“MyValue'作为范围,他给出了一个错误信息。 范围未知! 这是我返回同一列的代码。有人提出另一种解决方案吗?

Private Sub OPEN_MSG_Click()
    Dim FindString$
    Dim MyValue   
    Dim objExcel, objsheet, WB,WS As Object

    'Open excel file
    Set objExcel = CreateObject("Excel.Application")
    objExcel.Visible = False

    Set WB = objExcel.Workbooks.Open("C:\Program Files (x86)\Proficy\Proficy iFIX\ProjectBackup\Foutcode_Opgezuiverd.xlsx")
    WB.ACTIVATE

    Set WS = WB.Worksheets("Blad1")
    'Set objsheet = objExcel.ActiveWorkbook.Worksheets(1)

    FindString = InputBox("Enter a Search value")

    With WS.Range("A1:A800")
        Set MyValue = .Find("FindString", LookIn:=xlValues)
        If Not MyValue Is Nothing Then
            MsgBox MyValue.Column
        MsgBox MyValue.row
        End If
    End With

    ' Save the spreadsheet and close the workbook.
    objExcel.ActiveWorkbook.Close
    ' Quit Excel.
    objExcel.Application.Quit

End Sub

1 个答案:

答案 0 :(得分:1)

在find方法中,你要求它搜索" FindString"作为一个字符串。由于您想在FindString中找到值,因此您应该删除""。

    Set MyValue = .Find(FindString, LookIn:=xlValues)

您可能还希望将Findstring声明为字符串,以避免使用find方法出错。