在列中查找日期并将数据数组粘贴到相邻单元格中

时间:2014-06-27 12:42:18

标签: excel vba date find

海派,我有以下问题: 我有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

提前致谢

2 个答案:

答案 0 :(得分:0)

您的代码只对我有所改变。替换:

Selection.Paste.Value

使用:

Selection.PasteSpecial Paste:=xlPasteValues

Selection.Paste没有Value方法。这不是有效的语法。此替换将使您的代码可用于复制和粘贴值。显然,您仍然需要修改代码,以便在输出电子表格中找不到日期时容纳,但这只是一个简单的if语句。

答案 1 :(得分:0)

所以最终的代码如下:

'卖ENEMONA     Windows(“Daily_Trading volumes_template.xlsm”)。激活     工作表(“时间表”)。激活         如果范围(“AA13”)。值> 0然后     范围( “C13:Z13”)选择。     Application.CutCopyMode = False     Selection.copy

Windows("EG_Sell.xlsx").Activate
Worksheets("ENEM").Activate

 Set Rng = Range("A:A").Find(data)
 Rng.Offset(0, 1).Select
 Selection.PasteSpecial Paste:=xlPasteValues
'copy prices
Windows("Daily_Trading volumes_template.xlsm").Activate
Worksheets("Schedules").Activate
    Range("AH13:BE13").Select
Application.CutCopyMode = False
Selection.copy
   Windows("EG_Sell.xlsx").Activate
Worksheets("ENEM").Activate

 Set Rng = Range("AC:AC").Find(data)
 Rng.Offset(0, 1).Select
 Selection.PasteSpecial Paste:=xlPasteValues
    End If

我添加了一个If来检查我感兴趣的范围是否有要复制的值。第二个复制过程获取一些与第一个范围相关的数据,并将其粘贴到相应的工作表中。