问题:
为什么Range.Find
在引用不同的工作簿时该方法不起作用?
问题:
我试图在工作簿之间复制数据,但该Range.Find
方法因“运行时错误 1004”而停止。我在 Windows 7 机器上使用 Excel 2007。
详细信息: 在两个工作簿上,每个工作簿仅引用或使用 Sheet1。我有一个程序(ztest),其大纲如下:
- 格式化工作表
- 遍历工作簿 #1 的 E 列中的所有单元格
- 使用该
Range.Find
方法,在工作簿 #2 的 E 列中找到值 - 找到后,设置工作簿 #1 偏移列 = 工作簿 #2 偏移列
我想这样做.Find
-不使用 HLOOKUP 等。
我已经稍微简化了代码,以缩小到底发生了什么。这没有显示上面的第 4 步,但错误发生在第 3 步,在包含该.Find
方法的语句中:
Public Sub ztest2()
'set workbook titles
Const w1 As String = "05AR 20130920.xlsx"
Const w2 As String = "05AR 20130923.xlsx"
Dim cl As Variant
With Workbooks(w2).Worksheets(1)
'format the sheet
.Range("A1", "D1").EntireColumn.Hidden = True
'loop through all cells column E of workbook #1
For Each cl In .Range("E2", Cells(Rows.Count, "E").End(xlUp))
'find value of current cell in column E, workbook #2
Workbooks(w1).Worksheets(1) _
.Range("E2", Cells(Rows.Count, "E").End(xlUp)) _
.Find(what:=cl.Value, LookIn:=xlValues).Select
Next
End With
End Sub