2015-04-07 36 views
0

我正在努力創建一個代碼來搜索我正在訪問的工作簿中的某個值,而不會將其置於前臺。我使用下面的代碼訪問該文件爲「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 

由於提前,

+0

您的主要問題是什麼?要在後臺執行此操作,請確定要複製或提取行號的行? – R3uK

+0

我需要確定在以後的函數中使用的行。我在同一個文檔中完成這個任務時完全沒有問題,它完全是通過另一個「不可見的」工作簿來完成的。 – DannyBarnes01

回答

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

謝謝你,但它不適合我。它提示「.Cells」組件的編譯錯誤。 – DannyBarnes01

+0

添加了一些修改:爲表單(適用於我)放置索引,並且由於'After'不是強制性的,我將其刪除。 – R3uK

+0

現貨。將表格名稱添加爲故障安全並用作變量。謝謝您的幫助。 – DannyBarnes01

相關問題