需要解释VBA代码
我真的不理解这个VBA代码,在这个语句中“find”是什么意思,有人能帮我理解吗需要解释VBA代码,vba,excel,Vba,Excel,我真的不理解这个VBA代码,在这个语句中“find”是什么意思,有人能帮我理解吗 rngOutput = ActiveWorkbook.Sheets(p_objReportActual.Reportname) _ .Range(Range("A2"), Range("A2").End(xlToRight)).Offset(-1, 0) _ .Find(objEachAnalysis.Analysis, , , xlWhole).Offset(2,
rngOutput = ActiveWorkbook.Sheets(p_objReportActual.Reportname) _
.Range(Range("A2"), Range("A2").End(xlToRight)).Offset(-1, 0) _
.Find(objEachAnalysis.Analysis, , , xlWhole).Offset(2, 0)
在代码之前写入
debug.print objEachAnalysis.Analysis
代码将rngOutput设置为比控制台(即时窗口)上打印的找到值低两行
在代码写入debug.print rngOutput.address
后,在同一即时窗口中查看地址
要查看即时窗口,请在Excel中的Visual Basic编辑器中按ctrl+G。表达式乍一看可能非常复杂,您可以将其拆分以使事情更简单,下面是带有注释的示例:
' get target sheet name
sTargetSheet = p_objReportActual.Reportname
' get the value which need to be found
vToFind = objEachAnalysis.Analysis
' get the sheet object
Set oSheet = ActiveWorkbook.Sheets(sTargetSheet)
' get actually all cells within row 2 as init range
Set oInitRange = oSheet.Range(Range("A2"), Range("A2").End(xlToRight))
' get the range to search in as init range shifted by 1 row up
Set oSearchRange = oInitRange.Offset(-1, 0)
' get the first cell where the value found
Set oFoundCell = oSearchRange.Find(vToFind, , , xlWhole)
' get result cell shifted by 2 row down
Set oResultCell = oFoundCell.Offset(2, 0)
' show the cell on the sheet
oResultRange.Select
现在很明显,
.Find()
只是一种范围对象的方法,您可以很容易地在MSDN上找到此方法的帮助主题,如注释所示。rngOutput是下面第2行的单元格,其中“objEachAnalysis.Analysis”的值位于工作表“p_objReportActual.Reportname”中相邻范围内A2到右侧最后一个单元格和上面第1行的范围内
因此,如果A2:Z2中有数据,函数将在A2:Z1范围内查找与objEachAnalysis.Analysis的精确匹配。假设它是在C1中发现的,那么rngOutput向下两个单元格。i、 e.返回C3请阅读
范围
对象的文档。这如何帮助用户回答他的问题?