http://club.excelhome.net/thread-940744-1-1.html
2. Find方法的語法
[語法]
<單元格區域>.Find (What,[After],[LookIn],[LookAt],[SearchOrder],[SearchDirection],[MatchCase],[MatchByte],[SearchFormat])
'__________________________________________________________________________________________________
<單元格區域>.Find (要查找的數據,開始查找的位置,查找的范圍類型,完全匹配還是部分匹配,行列方式查找,向前向后查找,區分大小寫,全角或半角,查找格式)
(5)參數LookAt,可選。可以為以下常量之一:XlWhole或者xlPart,用來指定所查找的數據是與單元格內容完全匹配還是部分匹配,默認值為xlPart。對應於“查找與替換”對話框中,“單元格匹配”復選框。
案例:根據工作表名稱查找標題欄中的對應標題的單元格
源表:
VBA語句:
Option Explicit Option Compare Text Sub 根據內容查找單元格() Dim sSheet As Worksheet Dim eachSheet As Worksheet Dim findRange As Range Dim columnCount As Integer Set sSheet = Worksheets("數據") '獲取工作表總列數 columnCount = sSheet.UsedRange.Cells.EntireColumn.Count For Each eachSheet In Worksheets '只查找A1單元格所在的整行 Set findRange = sSheet.Range("A1").EntireRow.Find(eachSheet.Name, , , xlWhole) Debug.Print findRange.Column Next eachSheet End Sub
改進版:
Option Explicit Option Compare Text Sub 根據內容查找單元格() Dim sSheet As Worksheet Dim eachSheet As Worksheet Dim findRange As Range Dim columnCount As Integer Set sSheet = Worksheets("Sheet2") '獲取工作表總列數 columnCount = sSheet.UsedRange.Cells.EntireColumn.Count For Each eachSheet In Worksheets '只查找A1單元格所在的整行 Set findRange = sSheet.Range("A1").EntireRow.Find(eachSheet.Name, , , xlWhole) '可能找不到符合的單元格,因此使用前先判斷下 If Not findRange Is Nothing Then Debug.Print findRange.Column End If Next eachSheet End Sub
如果可能存在沒有找到的情況,如果直接使用它,沒有找到就會導致程序報錯,不過可以利用報錯來終止程序運行,相當於拋出運行時異常,提示用戶需要檢查錯誤,也是一種策略,所以使用時根據需要綜合考慮上面2種方案吧
運行后:
https://www.cnblogs.com/xpvincent/p/7424694.html VBA中FIND方法的使用說明,不錯的