Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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
如果满足条件,则从不同工作簿复制并粘贴VBA Excel_Vba_Excel - Fatal编程技术网

如果满足条件,则从不同工作簿复制并粘贴VBA Excel

如果满足条件,则从不同工作簿复制并粘贴VBA Excel,vba,excel,Vba,Excel,我正在尝试根据今天的日期自动复制一组数据。 我想做的是,让我想要复制数据的工作簿(已经打开),更改日期,然后它会自动从我收到电子邮件的文件中复制数据 现在我可以这样做,但现在我只想复制数据,如果p列的值与原始工作簿中的单元格AV1(也是日期)相同。我已经修改了我的代码,但它不再有效,我得到了 运行时错误9下标超出范围 任何想法都将不胜感激 Sub import() Dim wb1 As Workbook, wb2 As Workbook Dim rangedate As Rang

我正在尝试根据今天的日期自动复制一组数据。 我想做的是,让我想要复制数据的工作簿(已经打开),更改日期,然后它会自动从我收到电子邮件的文件中复制数据

现在我可以这样做,但现在我只想复制数据,如果p列的值与原始工作簿中的单元格AV1(也是日期)相同。我已经修改了我的代码,但它不再有效,我得到了

运行时错误9下标超出范围

任何想法都将不胜感激

Sub import()
    Dim wb1 As Workbook, wb2 As Workbook
    Dim rangedate As Range
    Set wb1 = ActiveWorkbook
    Set wb2 = Workbooks.Open("Location of file\.csv") 
    Set rangedate = wb2.Sheets(1).Range("P2:P1000")

    For Each cell In rangedate
        If cell.Value = Workbooks("Original workbook.xlsm").Range("AV1") Then
            ActiveCell.EntireRow.Copy
            wb.Range("A").PasteSpecial Paste:=xlValues
        End If
    Next

    Application.CutCopyMode = False
    wb2.Close SaveChanges:=False
End Sub 

ActiveCell.EntireRow.Copy
应该是
cell.EntireRow.Copy
,也应该是
wb.Range(“A”).Paste特殊粘贴:=xlValues
缺少
Range
对象
工作簿(“原始工作簿.xlsm”).Range(“AV1”)的行号
缺少一个工作表,但如果AV1包含的所有内容都是当前日期,则可以将其替换为
日期(VBA中的今天的日期)。除了已经指出的以外,您缺少wb.Range(“a”)上的wb和xlPasteValues上的粘贴…大家好,感谢您的帮助!我带着Shai Rado,Jeped和Irenes一起上了船,它起作用了!然而,这次当我使用wb1.Range(“A2”).Paste特殊的粘贴:xlValues时,它显然只复制到Range A2,然后在第行继续复制。有没有办法让rangedate一直读到wb2.Sheet(1)的最后一行,然后再让wb.Range将等价物过帐?谢谢你的帮助!