VBA用户表单:根据条件复制和粘贴

时间:2019-07-15 16:27:57

标签: excel vba combobox userform

我正在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)订购日期

有什么想法吗?

0 个答案:

没有答案
相关问题