我试图从一个标签页找到/复制并过去一些列。
这是我的代码:
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")
)
我总是在这一行上出错**,如果删除它,代码就可以了。
可以帮助
非常感谢提前
答案 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)