Vba 考虑到唯一的参考号,将行中的单元格复制到另一张图纸
我试图通过将表格中输入的参考编号与记录B列中的编号进行匹配,从表格记录中提取数据。我可以通过单击命令按钮来获得下面的VB代码。然而,它只会从sheet Record列i返回一个值,对每个值进行编码将非常耗时Vba 考虑到唯一的参考号,将行中的单元格复制到另一张图纸,vba,excel,copy,Vba,Excel,Copy,我试图通过将表格中输入的参考编号与记录B列中的编号进行匹配,从表格记录中提取数据。我可以通过单击命令按钮来获得下面的VB代码。然而,它只会从sheet Record列i返回一个值,对每个值进行编码将非常耗时 Private Sub CommandButton1_Click() With Application.WorksheetFunction Sheets("Form").Range("b:b") = _ .Index(Sheets("Record").Range("h:h"),
Private Sub CommandButton1_Click()
With Application.WorksheetFunction
Sheets("Form").Range("b:b") = _
.Index(Sheets("Record").Range("h:h"), .Match(Sheets("Form").Range("i13"), Sheets("Record").Range("b:b"), 0), 1)
End With
End Sub
我想知道,如果表格表格I13单元格中的参考号与表格记录B列中的任何值匹配,是否可以将表格记录H-Q列中的值复制到表格表格B-K列中?因为我大部分时间遇到的是返回整行。
我真的很感激任何帮助。谢谢这可能是暴力,但我认为最好的方法是像这样循环数据:
'Find the last row of data
Public Function Get_Last_Row_Find(ByVal rngToCheck As Range) As Long
Dim rngLast As Range
Set rngLast = rngToCheck.Find(what:="*", searchorder:=xlByRows, SearchDirection:=xlPrevious)
If rngLast Is Nothing Then
Get_Last_Row_Find = rngToCheck.Row
Else
Get_Last_Row_Find = rngLast.Row
End If
If Get_Last_Row_Find <= 1 Then
Get_Last_Row_Find = 2
End If
End Function
Public Sub CommandButton1_Click
x = Get_Last_Row_Find(Sheets("Record").Range("B:B")
for i = 1 to x
if Sheets("Form").Range("I13").Value = Sheets("Record").Range("B:B").Offset(i-1,0).Value then 'match
Worksheets("Record").Range("H"&i&":Q"&i).Copy _
destination:=Worksheets("Form").Range("B"&i&":K"&i)
next i
请注意偏移的两种方法:可以使用.Offset方法,也可以使用变量并在文本范围内连接它
代码未测试。是否需要将其作为VBA解决方案?可以用公式轻松完成。是的。我实际上需要它在vb中。谢谢。但是,一行只需要该行的一部分。仅单元格b:g上的值示例