在后台工作簿中查找值

时间:2015-04-07 09:59:50

标签: excel vba excel-vba find

我正在努力创建一个代码来搜索我正在访问的工作簿中的值,而不会将其带到前台。我使用以下代码访问该文件为" xl0":

'DATABASE ACCESS
Dim xl0 As New Excel.Application
Dim xlw As New Excel.Workbook
Dim db_directory As String
db_directory = "R:\New Quality Management System\xls\Supplier Non-Conformance\Supplier Non-Conformance Database.xlsm"
Set xlw = xl0.Workbooks.Open(db_directory)

我已经成功地将这些记录添加到xl0电子表格中了但是我还需要创建一个修改记录宏来找到"找到"索引值并提取行号。我尝试了几种变体(下面的两个例子)没有成功,有人可以建议吗?

例如1。

Windows("Supplier Non-Conformance Database.xlsm").Activate
Cells.Find(What:="2015-16-46", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate

例如2。

xl0.Worksheets("SNCR Log").Range("B:B").Find(What:="2015-16-46",
After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate

提前致谢,

1 个答案:

答案 0 :(得分:1)

这是一个开始: (顺便说一句,激活在资源方面真的很贪婪,所以尽量避免它!)

Application.ScreenUpdating=False

'DATABASE ACCESS
Dim xl0 As New Excel.Application
Dim xlw As New Excel.Workbook
Dim db_directory As String

xl0.Visible=False

db_directory = "R:\New Quality Management System\xls\Supplier Non-Conformance\Supplier Non-Conformance Database.xlsm"
Set xlw = xl0.Workbooks.Open(db_directory)

MsgBox xlw.Sheets(1).Cells.Find(What:="2015-16-46", LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Row


Application.ScreenUpdating=True