Excel 在列中查找日期,并在相邻单元格中粘贴数据数组
各位,我有以下问题: 我有两个文件-A和B 在文件A中,我在单元格A1中有一个精确的日期 在c3:z3范围内,我有一些值要复制并粘贴到文件B中 文件B在a列中有一个日期列表 问题:该过程必须将文件A单元格A1中的日期与文件B中的一个日期匹配,然后将文件A单元格c3:z3中的值粘贴到相邻单元格中 到目前为止,我提出了这个,但我得到了一个错误,与,不知道如何修复它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
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