我正在VBA中创建一个用户窗体,该窗体将从包含3000多个唯一框尺寸的单独工作表中查找特定框的大小,并仅将该尺寸的相应列返回到另一个表中。
我尝试了很多类型的循环,但对于每种循环却根本行不通。因此,我尝试创建一个复制和粘贴方法,该方法将复制第一列与组合框中的值匹配的所有行。我继续遇到的问题是目标行/粘贴范围内的代码行。我收到运行时错误1004“由于复制区域和粘贴区域的大小不同,因此无法粘贴在这里”。
这是单击“输入”按钮后当前在用户窗体中提供的VBA代码。作为参考,包含我要搜索的所有数据的工作表是“查找草稿”,而我要粘贴匹配行的工作表是“框查找数据”。
Sub EnterButton_Click()
Dim ws As Worksheet
Dim datawks As Worksheet
Set ws = Worksheets("Box Lookup Data")
Set datawks = Worksheets("Lookup Draft")
Dim LastRow As Long
Dim i As Long, j As Long
'Find the last used row
With datawks
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
End With
'first row number to paste values
With ws
j = .Cells(.Rows.Count, "B").End(xlUp).Row + 1
End With
'copy from datawks to ws
For i = 1 To LastRow
With datawks
If .Cells(i, 1).Value = ComboBox.Text Then
.Rows(i).Copy Destination:=ws.Range("B" & j)
j = j + 1
End If
End With
Next i
End Sub
我试图将包含目标的代码行更改为单元格引用,但这也不起作用。我希望粘贴的范围包括所有匹配的行,而不仅仅是找到的第一个匹配项,这是我在尝试复制/粘贴之前遇到的问题。
我要粘贴的工作表有5个带标签的列:(B)框大小,(C)客户,(D)价格,(E)数量和(F)订购日期
有什么想法吗?