在2个工作簿的偏移量之后查找值并复制多个值

时间:2018-03-27 22:39:55

标签: excel vba find multiple-columns copy-paste

我无法解决这个问题。我已经尝试了几种不同的方法来做到这一点,但我已经空了。

我想在一个工作簿中获取值,并在另一个工作簿的列中找到它,然后执行偏移并复制6列信息(1行,6列,所以6个值)并将它们粘贴回原始工作簿。

我从类似的问题中得到了以下代码,但它只是带回了一大堆有边界的单元格......相当混淆了那个。这段代码只是我试图找到值,19列,复制该值,并将其带回第一个工作簿。最后,我想抓住前面提到的6个值...

Sub findgage()
Dim gage As String

gage = Worksheets("Caliper").Range("C4").Value

With Workbooks.Open(Filename:="[path]\IMTECOPY.xlsx", ReadOnly:=False)


    With .Worksheets("All").Range("B1:B1000")
      .AutoFilter 1, gage
      Range("S" & ActiveCell.Row & ":X" & ActiveCell.Row).Select


    End With

End With
End Sub

更新好的,所以上面的代码正在几乎完全按照我的意愿去做,但它选择了#34下方的6个单元格;活跃行"。我在这里错过了什么?我没有看到任何让它做到这一点的事情......

以下是其选择内容的图片:

enter image description here

知道为什么会跳下来吗?

2 个答案:

答案 0 :(得分:1)

试试这个

Sub findgage()
    Dim gage As String

    gage = Worksheets("Caliper").Range("C4").Value

    With Workbooks.Open(Filename:="[path]\IMTECOPY.xlsx", ReadOnly:=True)
        With .Worksheets("All").Range("B1:B1000")
          .AutoFilter 1, gage
          Worksheets("Caliper").Range("J15").Resize(, 6).Value = .Offset(1).Resize(, 6).Value
          .AutoFilter
        End With
        .Close False
    End With
End Sub

答案 1 :(得分:0)

让它发挥作用。最后。有很多点点滴滴。

Sub findgage()
    Dim gage As String

    gage = Worksheets("Caliper").Range("C4").Value

    With Workbooks.Open(Filename:="[path]\IMTECOPY.xlsx", ReadOnly:=False)
   ' Dim myrange As String

        With .Worksheets("All").Range("$B:$B")
          .AutoFilter 1, gage

ActiveSheet.AutoFilter.Range.offset(1).SpecialCells(xlCellTypeVisible). 
_Cells(1, 2).Select
        thisrow = ActiveCell.Row

dataset = Range("S" & thisrow & ":X" & thisrow).Value

Workbooks("Book1").Sheets("Caliper").Range("G14:L14") = dataset
Workbooks("IMTECOPY.xlsx").Close False



    End With

End With
End Sub

这会打开日志,将其过滤到我们正在寻找的量表编号,选择我们需要查看的6列中的值,然后将它们带回原始工作簿。我真诚地希望其中一些可以帮助别人,因为这是一项愚蠢的工作和挫折。