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

查找行中的日期变量并返回VBA列,vba,excel,find,Vba,Excel,Find,我希望在一行中找到一个变量并返回列引用。到目前为止,我写的代码是 Dim VarianceDate As String VarianceDate = Sheets("Summary").Range("C12").Value Rows("6").Find(What:=VarianceDate, After:=ActiveCell, LookIn:=xlFormulas _ , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirectio

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

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引用来帮助我将正确的数据提取到另一个工作簿中

任何帮助都将不胜感激


谢谢

您需要指出的是,搜索词是一个日期,而且如果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

你是说
VarianceDate
=什么都没有?您能试一下像:
Debug.Print VarianceDate
这样的行来确认这一点吗?如果是这样,您需要确保您的工作表和范围参考是正确的。不,variancedate=01/06/2015我认为问题在于代码的“查找”部分。因为它不返回任何内容,即不执行任何操作。此代码不会返回所需的结果,因为
ActiveCell
当前将是运行代码之前选择的单元格。一般来说,我不会使用
ActiveCell
。只需说
Msgbox TargetCell.Column
.Yes-复制粘贴错误。我通常也不使用ActiveCell。谢谢你的打字错误