【发布时间】:2014-08-18 13:57:46
【问题描述】:
大家好,我有以下问题: 我有 2 个文件 - A 和 B 在文件 A 中,我在单元格 A1 中有一个准确的日期 在 c3:z3 范围内,我有要复制并粘贴到文件 B 中的值
文件 B 在 A 列中有一个日期列表。
问题:程序必须将文件 A 单元格 A1 中的日期与文件 B 中的日期之一匹配,然后将文件 A 单元格 c3:z3 中的值粘贴到相邻单元格中
到目前为止,我想出了这个,但是我收到关于“With”的错误并且不知道如何解决它
Sub copy_GeoFac()
'get date
Windows("File_A.xlsm").Activate
Dim data As Date
data = Worksheets("Sheet1").Cells(1, "A").Value
Range("C3:Z3").Select
Application.CutCopyMode = False
Selection.copy
Windows("File_B.xlsx").Activate
Dim FindString As Date
Dim Rng As Range
FindString = CLng(data)
With Sheets("GEOF").Range("A:A")
Worksheets("GEOF").Activate
Set Rng = Range("A:A").Find(data)
Rng.Offset(0, 1).Select
Selection.Paste.Value
End With
End Sub
提前致谢
【问题讨论】:
-
你还在用 With 块做什么?在 With 块内的 4 行中,我看不到你曾经利用过 With 块。
-
嗯,我是新手,从论坛和说明中学习,所以我正在尝试调整从不同来源找到的代码。 WITH来自这样一段代码。
-
好吧,这就是 With 块的工作原理...... With Sheets("GEOF").Range("A:A") 的重点是您可以使用 .Find(data) 而不是Sheets("GEOF").Range("A:A").Find(data)。当您要对激活 With 块的变量执行多项操作时,请使用 With 块。
-
如果是我,我会在这里去掉 With 块,因为您只在 With 块内引用 Sheets("GEOF").Range("A:A") 一次。
-
您是否绝对确定第一个工作表的 A1 中的值在目标电子表格的 A 列中?如果您找到的范围返回 null,则此代码应引发 With Block Variable Not Set 错误。