我想创建一个打开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
答案 0 :(得分:1)
在find方法中,你要求它搜索" FindString"作为一个字符串。由于您想在FindString中找到值,因此您应该删除""。
Set MyValue = .Find(FindString, LookIn:=xlValues)
您可能还希望将Findstring声明为字符串,以避免使用find方法出错。