查找行中的日期变量并返回列VBA

时间:2015-07-02 13:55:50

标签: excel vba excel-vba find

我希望在一行中找到一个变量并返回列引用。我到目前为止编写的代码是;

Dim VarianceDate As String
VarianceDate = Sheets("Summary").Range("C12").Value


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

TargetCol = ActiveCell.Column

在此示例中,方差日期是2015年6月1日,但是当我在VBA中输入代码时,它什么都不返回。除非我手动搜索它时找到正确的单元格。

最终我想使用TargetCol参考来帮助我将正确的数据提取到另一个工作簿中。

任何帮助都会很有用。

谢谢

1 个答案:

答案 0 :(得分:0)

你需要提一下搜索词是一个日期,如果activecell不在你的查找范围内,由于包含After:= ActiveCell

,它会引发错误

尝试以下代码

Sub FindDateCol()

    Dim VarianceDate As String: VarianceDate = Sheets("Summary").Range("C12").Value

    Dim TargetCell As Range, TargetCol As Integer
    Set TargetCell = Rows("6").Find(What:=CDate(VarianceDate), LookIn:=xlFormulas, LookAt:=xlPart)
    If Not TargetCell Is Nothing Then TargetCol = TargetCell.Column

    MsgBox TargetCol

End Sub