首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >定义变量误差

定义变量误差
EN

Stack Overflow用户
提问于 2017-08-29 13:51:59
回答 2查看 35关注 0票数 1

我正在在包装单上创建一张包装单。我所有的纽扣都在包装单上。我在单元格O5中有一个订单号,需要定义为PNUM。PNUM与联莫行动相比较,联莫行动的定义是查看订单头表中的每个变量,并复制将包发送到的适当客户端。

到目前为止,我的代码如下:

代码语言:javascript
复制
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,而不是输入的值。

提前感谢任何人能帮忙!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-29 13:55:06

试着改变这一点:

代码语言:javascript
复制
PNUM = Sheets("Packing Slip").Cells(15, 5)

如下所示:

代码语言:javascript
复制
PNUM = Worksheets("Packing Slip").Range("E15")

如果它有效,那么您就错选了行和列。

票数 1
EN

Stack Overflow用户

发布于 2017-08-29 14:27:25

作为Vityata correctly pointed out,您将在.Cells调用中反转行和列。

这是一个很容易陷入的陷阱,因为您正在处理针对Object的后期绑定调用,因此,在键入参数时,不要获得IntelliSense工具提示来告诉您预期的参数是什么。

解决方案是使用针对Worksheet的早期绑定调用。声明一个局部变量:

代码语言:javascript
复制
Dim sheet As Worksheet
Set sheet = ThisWorkbook.Worksheets("Packing Slip")

现在,您对该.Cells变量执行的sheet调用将为您提供IntelliSense工具提示,您再也不会犯这个错误了!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45940931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档