VBA 根据Find方法根据特定内容查找单元格

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 根据Find方法根据特定内容查找单元格

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种方案吧

运行后:

VBA 根据Find方法根据特定内容查找单元格

https://www.cnblogs.com/xpvincent/p/7424694.html  VBA中FIND方法的使用说明,不错的

上一篇:cmake-include_directories


下一篇:Android-Kotlin-递归与尾递归