Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 在列中查找日期,并在相邻单元格中粘贴数据数组_Excel_Vba_Date_Find - Fatal编程技术网

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

Excel 在列中查找日期,并在相邻单元格中粘贴数据数组,excel,vba,date,find,Excel,Vba,Date,Find,各位,我有以下问题: 我有两个文件-A和B 在文件A中,我在单元格A1中有一个精确的日期 在c3:z3范围内,我有一些值要复制并粘贴到文件B中 文件B在a列中有一个日期列表 问题:该过程必须将文件A单元格A1中的日期与文件B中的一个日期匹配,然后将文件A单元格c3:z3中的值粘贴到相邻单元格中 到目前为止,我提出了这个,但我得到了一个错误,与,不知道如何修复它 Sub copy_GeoFac() 'get date Windows("File_A.xlsm").Activate

各位,我有以下问题: 我有两个文件-A和B 在文件A中,我在单元格A1中有一个精确的日期 在c3:z3范围内,我有一些值要复制并粘贴到文件B中

文件B在a列中有一个日期列表

问题:该过程必须将文件A单元格A1中的日期与文件B中的一个日期匹配,然后将文件A单元格c3:z3中的值粘贴到相邻单元格中

到目前为止,我提出了这个,但我得到了一个错误,与,不知道如何修复它

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

提前感谢

您的代码对我来说只需一个更改。替换:

Selection.Paste.Value
与:


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

因此最终代码如下所示:

“卖掉埃尼莫纳 WindowsDaily\u交易量\u template.xlsm.Activate 工作表时间表。激活 如果RangeA13.Value>0,则 范围c13:Z13.Select Application.CutCopyMode=False 选择。复制

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来检查我感兴趣的范围是否有任何要复制的值。第二个复制过程获取一些与第一个范围相关的数据,并将其粘贴到相应的工作表中。

您甚至使用With块做什么?在With块内的4行中,我看不到你利用With块。我是新手,从论坛和说明中学习,所以我尝试改编从不同来源找到的代码。WITH来自这样一段代码。好吧,下面是WITH块的工作原理。。。使用SheetsGEOF.RangeA:A的意义在于,您可以使用.Finddata而不是SheetsGEOF.RangeA:A.Finddata。当您要在启用块的情况下对激活的变量执行多个操作时,请使用With blocks。如果是我,我想在这里去掉With块,因为您只引用了SheetsGEOF.RangeA:A一次With块。您是否绝对确定第一个工作表A1中的值位于目标电子表格的A列中??如果您找到的范围返回null,此代码将抛出With Block变量Not Set错误。完美!这很有效。我刚把它和
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