VBA range.find - 引用范围对象

时间:2018-05-21 20:11:33

标签: excel vba excel-vba named-ranges

我已经进行了搜索和搜索,并且还没有找到一个可行的解决方案,看似简单的任务。

我的工作簿中有一个名为Input的选项卡。在输入工作表上,我有列标题和各种数据行。

我想识别特定标题,在这种情况下是“交易日期”,并检查列出的日期以确保日期匹配。

With DataSheet
Set dateCellCheck = .Range("A1:Z1").Find(What:=("Trade Date"), _
                    LookIn:=xlValues, lookat:=xlWhole, _
                    MatchCase:=False, searchformat:=False)  'find column titled trade date'

此代码正确识别哪个列。这可能因用户而异,具体取决于他们的输入首选项,因此需要进行动态搜索才能找到正确的列。

随后,宏格式化日期数据:

If Not dateCellCheck Is Nothing Then
    dateCellCheck.EntireColumn.NumberFormat = "m/dd/yyy"
Else
    MsgBox "Trade Date Column Not Found"
    Exit Sub
End If

到目前为止一切顺利。也按预期工作。

这里我挂了电话。下一步是根据第一次搜索中找到的单元格搜索整个交易日期列,以查看是否有任何日期与今天的日期相匹配。在下面的代码中,当我使用" K:K"代码有效,但我找不到适用于引用dateCellCheck列的任何东西的解决方案。

Set dateCell = .Range("K:K").Find(What:=CDate(Date), LookIn:=xlValues, lookat:=xlWhole, MatchCase:=False, searchformat:=False)

我尝试引用列,即range.entirecolumn属性。我尝试设置一个额外的范围变量并存储来自dateCellCheck的地址。我随时更换" K:K"对于任何类型的范围属性,我得到'运行时错误1004:方法'对象的范围' _worksheet'失败。即使我的变量报告正确的地址,我仍然会收到错误。有人可以解释一下,是否有一个简单的解决方案来解决它?

我试过的一些事情没有成功:

.range("dateCellCheck").find 
.range("dateCellCheck").entirecolumn.find 

Set newrange = dateCellCheck.entireColumn
.range("newrange").find

我所做的任何事情都引用了一个范围对象并不起作用。

0 个答案:

没有答案