我在包装单上打了一个装箱单。我的所有按钮都在装箱单上。我在单元格O5中有一个需要定义为PNUM的订单号。 PNUM与ONUM进行比较,ONUM被定义为查看订单表头中的每个变量,并复制正在运送包的相应客户端。
到目前为止,这是我的代码:
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,而不是输入的值。
提前感谢任何有帮助的人!!
答案 0 :(得分:1)
尝试改变这一点:
PNUM = Worksheets("Packing Slip").Range("E15")
像这样:
>> require 'rubygems'
=> false
>> require 'redis'
=> true
>> r = Redis.new
=> #<Redis client v2.2.1 connected to redis://127.0.0.1:6379/0 (Redis v2.3.8)>
>> r.ping
=> "PONG"
>> r.set('foo','bar')
=> "OK"
>> r.get('foo')
=> "bar"
如果有效,则会误认为行和列。
答案 1 :(得分:1)
作为Vityata correctly pointed out,您正在反映.Cells
来电中的行和列。
这是一个容易陷入的陷阱,因为您正在使用针对Object
的后期绑定调用,因此,在您键入时,不要使用IntelliSense工具提示来告诉您预期的参数是什么。
解决方案是使用针对Worksheet
的早期绑定调用。声明一个局部变量:
Dim sheet As Worksheet
Set sheet = ThisWorkbook.Worksheets("Packing Slip")
现在针对.Cells
变量执行的sheet
调用将为您提供智能感知工具提示,您再也不会犯错误了!