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
Excel 如何复制超出范围的数据_Excel_Vba - Fatal编程技术网

Excel 如何复制超出范围的数据

Excel 如何复制超出范围的数据,excel,vba,Excel,Vba,我试图从我使用两个字符串设置的范围复制一些列数据。范围设置在列“B”中,我需要将列“C”和“D”中的数据复制到范围的长度,并将它们粘贴到列“B”和“C”中的另一张表中 范围是通过查找两个字符串“实施阶段的原始项目ER”和“25处的原始项目ER”来设置的 到目前为止,我已经成功地编写了将数据复制到正确位置的代码,但它只是复制范围内的数据(列“B”) 下面是一些示例数据,显示了我想要实现的目标 编辑:我已经设法使用偏移量1,1来显示列“C”中的第一组记录,现在只需要“D”这行吗 fr = "Orig

我试图从我使用两个字符串设置的范围复制一些列数据。范围设置在列“B”中,我需要将列“C”和“D”中的数据复制到范围的长度,并将它们粘贴到列“B”和“C”中的另一张表中

范围是通过查找两个字符串“实施阶段的原始项目ER”和“25处的原始项目ER”来设置的

到目前为止,我已经成功地编写了将数据复制到正确位置的代码,但它只是复制范围内的数据(列“B”)

下面是一些示例数据,显示了我想要实现的目标

编辑:我已经设法使用偏移量1,1来显示列“C”中的第一组记录,现在只需要“D”

这行吗

fr = "Originating Project ERs at Implementation Stage"
fc = "Originating Project ERs at 25"
Set r = Worksheets("Sheet1").Cells.Find(What:=fr, LookAt:=xlWhole)
Set c = Worksheets("Sheet1").Cells.Find(What:=fc, LookAt:=xlWhole)

If Not r Is Nothing Then
    StartR = r.Row + 1
        Else: MsgBox fr & " not found"
        Exit Sub
End If

If Not c Is Nothing Then
    EndR = c.Row - 1
        Else: MsgBox fc & " not found"
        Exit Sub
End If

Range(r.Offset(1, 1), c.Offset(-1, 1)).Resize(, 2).Copy
Worksheets("PriorityProgress").Range("B2").PasteSpecial Paste:=xlPasteValues

通过分别偏移每列来解决此问题

 If r.Row And c.Row > 1 Then
    Worksheets("Sheet1").Range(r, c).Offset(1, 1).Copy
    Worksheets("PriorityProgress").Range("B2").PasteSpecial Paste:=xlPasteValues
    Worksheets("Sheet1").Range(r, c).Offset(1, 2).Copy
    Worksheets("priorityProgress").Range("C2").PasteSpecial Paste:=xlPasteValues

这将返回运行时错误1004应用程序定义的错误或对象定义的错误在哪一行?您可以通过
再次从相同的范围偏移
。范围(r,c)
。偏移(1,2)
非常感谢!真不敢相信它这么简单!
 If r.Row And c.Row > 1 Then
    Worksheets("Sheet1").Range(r, c).Offset(1, 1).Copy
    Worksheets("PriorityProgress").Range("B2").PasteSpecial Paste:=xlPasteValues
    Worksheets("Sheet1").Range(r, c).Offset(1, 2).Copy
    Worksheets("priorityProgress").Range("C2").PasteSpecial Paste:=xlPasteValues