我正在在包装单上创建一张包装单。我所有的纽扣都在包装单上。我在单元格O5中有一个订单号,需要定义为PNUM。PNUM与联莫行动相比较,联莫行动的定义是查看订单头表中的每个变量,并复制将包发送到的适当客户端。
到目前为止,我的代码如下:
Private Sub CommandButton3_Click()
Dim PNUM As Long
Dim ONUM As Long
Dim c As Integer
c = 17
For I = 295 To 300
PNUM = Sheets("Packing Slip").Cells(15, 5)
ONUM = Sheets("Order Header").Cells(I, 1)
MsgBox (PNUM)
MsgBox (ONUM)
If PNUM = ONUM Then
Worksheets("Packing Slip").Cells(c, 2) = Worksheets("Order Header").Cells(I, 2)
Worksheets("Packing Slip").Cells(c, 11) = Worksheets("Order Header").Cells(I, 3)
Worksheets("Packing Slip").Cells(c, 6) = Worksheets("Order Header").Cells(I, 4)
End If
Next I由于某些原因,PNUM的消息框始终为0,而不是输入的值。
提前感谢任何人能帮忙!
发布于 2017-08-29 13:55:06
试着改变这一点:
PNUM = Sheets("Packing Slip").Cells(15, 5)如下所示:
PNUM = Worksheets("Packing Slip").Range("E15")如果它有效,那么您就错选了行和列。
发布于 2017-08-29 14:27:25
作为Vityata correctly pointed out,您将在.Cells调用中反转行和列。
这是一个很容易陷入的陷阱,因为您正在处理针对Object的后期绑定调用,因此,在键入参数时,不要获得IntelliSense工具提示来告诉您预期的参数是什么。
解决方案是使用针对Worksheet的早期绑定调用。声明一个局部变量:
Dim sheet As Worksheet
Set sheet = ThisWorkbook.Worksheets("Packing Slip")现在,您对该.Cells变量执行的sheet调用将为您提供IntelliSense工具提示,您再也不会犯这个错误了!
https://stackoverflow.com/questions/45940931
复制相似问题