2017-08-10 59 views
0

我想創建一個打開excel工作表的腳本,在'A'列中找到一個值並返回'B'列中的文本! 在GE的iFIX中使用VBA! 當我想聲明'MyValue'作爲範圍時,他給出了一條錯誤消息。 範圍未知! 這是我的代碼返回相同的列。有人提供另一種解決方案?打開excel並找到值,返回下一列

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 
+0

它工作與否? 'Range'只是Excel中的一個數據類型。只要將它作爲「變體」即可。 – UGP

回答

1

在find方法中,您要求它搜索「FindString」作爲字符串。既然你想查找FindString中的值,你應該刪除「」。

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

您可能還希望將Findstring聲明爲字符串以避免find方法出錯。

相關問題