VBA使用match函数出现错误1004

程序如下:
Private Sub Worksheet_Activate()
Dim time '定义被查找时间变量
Dim pos '定义位置变量
time = Cells(3, 2) '给被查找时间变量复制
pos = Application.WorksheetFunction.Match(time, Workbooks("002001.SZ.xls").Worksheets(1).Range("c:c"), 0) '查找时间变量并返回位置
Application.Workbooks("002001.SZ.xls").Worksheets(1).Cells(pos, 14).Copy ThisWorkbook.Worksheets(1).Cells(39, 2) '复制被查找时间对应的n列数值
End Sub
运行出错1004。但是如果不用time,直接在match里用cells(3,2)搜索的话就没问题。我就是好奇问题出在哪里。cell(3,2)跟Workbooks("002001.SZ.xls").Worksheets(1).Range("c:c")里面的数据都是日期。为什么给time赋值后再用time去搜索会出现错误?

time是VB内部函数名,不能直接作为变量名使用的。建议尽量不要用单个的英文单词做变量名(或其他一切跟名字有关的,如过程名),否则很容易与保留字发生冲突。你可以在time的基础上加一点,比如time1,或者减少一点,比如t、tm等,或者用拼音字母,比如sj、shijian等,甚至直接用汉字时间也可,总之不要用time!追问

讲time改为shijian 也不行
pos = Application.WorksheetFunction.Match(time, Workbooks("002001.SZ.xls").Worksheets(1).Range("c:c"), 0)

这一句中time改为 2007/10/19 这种具体数值都不行,只有改为cells(3,2)可以……

温馨提示:答案为网友推荐,仅供参考
相似回答