我无法解决这个问题。我已经尝试了几种不同的方法来做到这一点,但我已经空了。
我想在一个工作簿中获取值,并在另一个工作簿的列中找到它,然后执行偏移并复制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个单元格;活跃行"。我在这里错过了什么?我没有看到任何让它做到这一点的事情......
以下是其选择内容的图片:
知道为什么会跳下来吗?
答案 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列中的值,然后将它们带回原始工作簿。我真诚地希望其中一些可以帮助别人,因为这是一项愚蠢的工作和挫折。