需要说明VBA代码

时间:2016-11-28 18:35:24

标签: excel vba excel-vba

我真的不明白这个VBA代码,这个语句中“find”的含义是什么,有谁可以帮我理解?

SELECT  A.Agentid,A.BusinessLineID,A.TeamID,B.ParentBusinessLineID, Count (*) AS Total
FROM Dbo.BusinessLine AS B LEFT JOIN Dbo.Agent AS A ON A
WHERE 

3 个答案:

答案 0 :(得分:0)

在代码前写debug.print objEachAnalysis.Analysis

代码会将rngOutput两行设置为低于找到的值,并在控制台上打印(立即窗口)。

代码写入debug.print rngOutput.address后,在同一个立即窗口中查看地址。

要查看立即窗口,请在Excel中的Visual Basic编辑器中按ctrl+G

答案 1 :(得分:0)

乍一看表达式可能看起来很复杂,您可以拆分它以使事情更简单,这是带注释的示例:

    ' 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上的帮助主题。

答案 2 :(得分:0)

rngOutput是下面2行的单元格,其中的值为' objEachAnalysis.Analysis'在工作表中的连续范围内的A2到最后一个单元格的范围内找到p_objReportActual.Reportname'

以上一行

因此,如果A2:Z2中有数据,则该函数在A2:Z1范围内查找与objEachAnalysis.Analysis的完全匹配。说它在C1中找到,然后rngOutput是两个单元格。即返回C3