找到然后复制/粘贴Excel VBA

时间:2014-10-02 16:44:02

标签: excel-vba vba excel

我试图从一个标签页找到/复制并过去一些列。

这是我的代码:

Sheets("Past Inventory Here").Select

code = WorksheetFunction.Match("No.", Rows("1:1"), 0)
desc = WorksheetFunction.Match("Description", Rows("1:1"), 0)
stat = WorksheetFunction.Match("Item Status", Rows("1:1"), 0)
sale = WorksheetFunction.Match("Qty. on Sales Order", Rows("1:1"), 0)
purc = WorksheetFunction.Match("Qty. on Purch. Order", Rows("1:1"), 0)
inv = WorksheetFunction.Match("Inventory", Rows("1:1"), 0)
**meas = WorksheetFunction.Match("Base Unit of Measure", Rows("1:1"), 0)**

Sheets("Past Inventory Here").Columns(code).Copy Destination:=Sheets("Inventory").Range("A1")
Sheets("Past Inventory Here").Columns(desc).Copy Destination:=Sheets("Inventory").Range("B1")
Sheets("Past Inventory Here").Columns(stat).Copy Destination:=Sheets("Inventory").Range("C1")
Sheets("Past Inventory Here").Columns(sale).Copy Destination:=Sheets("Inventory").Range("D1")
Sheets("Past Inventory Here").Columns(purc).Copy Destination:=Sheets("Inventory").Range("E1")
Sheets("Past Inventory Here").Columns(inv).Copy Destination:=Sheets("Inventory").Range("F1")
Sheets("Past Inventory Here").Columns(meas).Copy Destination:=Sheets("Inventory").Range("G1")

我总是在这一行上出错**,如果删除它,代码就可以了。

可以帮助

非常感谢提前

2 个答案:

答案 0 :(得分:0)

您可能需要为每个人执行此操作。如果没有匹配则只是跳过它。您可能希望添加一个MsgBox来提醒您,或者使用一条说明未找到的消息来填充该单元格,或者给那些影响。 MSDN了解更多信息。

If Not IsError(Application.Match("Description", Rows("1:1"), 0)) Then
    desc = Application.Match("Description", Rows("1:1"), 0)
    Sheets("Past Inventory Here").Columns(desc).Copy Destination:=Sheets("Inventory").Range("B1")
else
    MsgBox " does not exist in range "
End If

答案 1 :(得分:0)

我的猜测是标题不完全一样。 “基本计量单位”的开头或结尾是否有空白? 如果你确切地知道它在哪里(让我们在L1前面说),你可以尝试下面的代码。只需在尝试设置meas变量之前添加它。在弹出窗口中,你将得到文本,这样你就可以比较他们是完全相同的。>在最后需要完全符合彼此:

MsgBox "<Base Unit of Measure> = " & Len("Base Unit of Measure") _
  & vbNewLine _
  & "<" & Range("L1").Value & "> = " & Len(Range("L1").Value)