2014-06-12 67 views
0

我是VBA中的新成員,我一直在研究如何在工作表中查找某些單詞。到目前爲止,我可以在活動工作表中執行此操作,但不能在另一個工作簿中執行其他文件夾中的操作任何人都可以幫助我找到在封閉的excel文件中查找單詞的方法嗎?這是我用來從當前運行宏的當前活動文件中找到一個單詞的方法。先進的謝謝你。如何使用VBA讀取已關閉的excel文件中的文件

Cells.Find(What:="24643", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _ 
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _ 
, SearchFormat:=False).Activate 

回答

2

Cells,除非它是由一個工作表的參考資格,將總是ActiveSheet.Cells

同樣,ActiveCell總是引用ActiveSheet的ActiveCell。

所以要修改這個對其他工作簿,不要限定它喜歡:

Dim foundRange as Range 
With Workbooks("Book2.xlsm").Sheets("Sheet1") '#Modify as needed 
    Set foundRange = .Cells.Find(What:="24643", After:=.Cells(1,1), _ 
    LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, _ 
    SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False) 
End With 
If Not foundRange Is Nothing Then foundRange.Activate 

您可能需要根據你想要做什麼來改變.Cells(1,1)到其他單元格位置。

我不認爲有可能使用.Find方法對已關閉的工作簿文件。

您可以打開該文件,第一:

Dim wbFind as Workbook 
Set wbFind = Workbooks.Open("c:\path\to\your\file.xlsx") 

,然後使用上面一樣的方法:

Dim foundRange as Range 

With wbFind.Sheets("Sheet1") 'Modify as needed 
    Set foundRange = .Cells.Find(What:="24643", After:=.Cells(1,1), _ 
    LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, _ 
    SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False) 
End With 
If Not foundRange Is Nothing Then foundRange.Activate 
+0

非常感謝您Mr.David。我實現了並在不同的文件中找到列標題。 –