Vba 宏已停止工作

Vba 宏已停止工作,vba,excel,Vba,Excel,我妻子在工作时有一份电子表格已经停止工作了。您将数据输入到一张好用的工作表上的一个选项卡中,然后按下按钮,数据将传输到另一张工作表上的一个表中。输入选项卡称为“NCR报告”,表格选项卡称为“PM2”,下面是宏。知道它为什么停止工作了吗 Sub Button111_Click() Dim a As Date Dim Counter As Integer Dim Filled As Boolean Dim ParamOut As String Dim i As Integer Dim Reels A

我妻子在工作时有一份电子表格已经停止工作了。您将数据输入到一张好用的工作表上的一个选项卡中,然后按下按钮,数据将传输到另一张工作表上的一个表中。输入选项卡称为“NCR报告”,表格选项卡称为“PM2”,下面是宏。知道它为什么停止工作了吗

Sub Button111_Click()
Dim a As Date
Dim Counter As Integer
Dim Filled As Boolean
Dim ParamOut As String
Dim i As Integer
Dim Reels As String


MsgBox ("Wait...")



'Identify 1st empty row
Counter = 3
While Filled = False
    Counter = Counter + 1
    a = Worksheets("PM 2").Cells(Counter, 1).Value
    If a = 0 Then
        Filled = True
        Else: Filled = False
    End If

Wend

'Shift
 Worksheets("PM2").Cells(Counter, 2).Value = Worksheets("NCR Report").Cells(2, 7).Value

'Production date
 Worksheets("PM2").Cells(Counter, 1).Value = Worksheets("NCR Report").Cells(3, 7).Value

 'Article number
 Worksheets("PM2").Cells(Counter, 4).Value = Worksheets("NCR Report").Cells(4, 7).Value

 'Total weight
  Worksheets("PM2").Cells(Counter, 5).Value = Worksheets("NCR Report").Cells(16, 8).Value

'Parameter out, build the string
ParamOut = ""
For i = 21 To 24
    If Worksheets("NCR Report").Cells(i, 2).Text <> "" Then

        ParamOut = ParamOut & " " & Worksheets("NCR Report").Cells(i, 2).Text & " " & Worksheets("NCR Report").Cells(i, 5).Text & " " & Worksheets("NCR Report").Cells(i, 9).Text & " " & Worksheets("NCR Report").Cells(i, 10).Text
    End If
Next i

Worksheets("PM2").Cells(Counter, 6).Value = ParamOut

'Adjustements
 Worksheets("PM2").Cells(Counter, 7).Value = Worksheets("NCR Report").Cells(29, 2).Value

'Reel number
Reels = ""
Reels = Worksheets("NCR Report").Cells(10, 2).Text


    For i = 11 To 15
     If Worksheets("NCR Report").Cells(i, 2).Value = 0 Then
          Else: Reels = Reels & " / " & Worksheets("NCR Report").Cells(i, 2).Text
        End If
    Next i

Worksheets("PM2").Cells(Counter, 3).Value = Reels

MsgBox ("NCR has been successfully added to the spreadsheet." & vbCrLf & "Don't forget to save this file before quitting and also to block the reels on PLAIN.")


End Sub
子按钮111\u单击()
将日期变暗
作为整数的Dim计数器
Dim填充为布尔值
将参数变暗为字符串
作为整数的Dim i
暗卷如弦
MsgBox(“等待…”)
'识别第一个空行
计数器=3
填充时=假
计数器=计数器+1
a=工作表(“PM 2”).单元格(计数器,1).值
如果a=0,则
填充=真
否则:填充=错误
如果结束
温德
"班次",
工作表(“PM2”)。单元格(计数器,2)。值=工作表(“NCR报告”)。单元格(2,7)。值
“生产日期
工作表(“PM2”)。单元格(计数器,1)。值=工作表(“NCR报告”)。单元格(3,7)。值
"物品编号",
工作表(“PM2”)。单元格(计数器,4)。值=工作表(“NCR报告”)。单元格(4,7)。值
“总重量
工作表(“PM2”)。单元格(计数器,5)。值=工作表(“NCR报告”)。单元格(16,8)。值
'参数输出,生成字符串
ParamOut=“”
对于i=21到24
如果工作表(“NCR报告”)。单元格(i,2)。文本为“”,则
ParamOut=ParamOut&&Worksheets(“NCR报告”)。单元格(i,2)。文本&&Worksheets(“NCR报告”)。单元格(i,5)。文本&&Worksheets(“NCR报告”)。单元格(i,9)。文本&&Worksheets(“NCR报告”)。单元格(i,10)。文本
如果结束
接下来我
工作表(“PM2”)。单元格(计数器,6)。值=参数输出
"调整",
工作表(“PM2”)。单元格(计数器,7)。值=工作表(“NCR报告”)。单元格(29,2)。值
'卷轴编号
卷轴=“”
卷轴=工作表(“NCR报告”)。单元格(10,2)。文本
对于i=11到15
如果工作表(“NCR报告”).Cells(i,2).Value=0,则
Else:Reels=Reels&“/”和工作表(“NCR报告”)。单元格(i,2)。文本
如果结束
接下来我
工作表(“PM2”)。单元格(计数器,3)。值=卷数
MsgBox(“NCR已成功添加到电子表格中。”&vbCrLf&“退出前别忘了保存此文件,也别忘了在平面上阻止卷轴。”)
端接头

您对图纸名称的引用不一致。 在一种情况下,其:

a=工作表(“PM 2”)。单元格(计数器,1)。值

以及后来的:

工作表(“PM2”)。单元格(计数器,2)。值=工作表(“NCR报告”)。单元格(2,7)。值


代码需要与工作表的实际名称匹配,无论是否有空格

您对工作表名称的引用不一致。 在一种情况下,其:

a=工作表(“PM 2”)。单元格(计数器,1)。值

以及后来的:

工作表(“PM2”)。单元格(计数器,2)。值=工作表(“NCR报告”)。单元格(2,7)。值


代码需要与工作表的实际名称相匹配,无论是否有空格

忘记添加错误消息“运行时错误'9':脚本超出范围不知道。此脚本在哪一行崩溃?它似乎位于hte a=工作表(“PM2”)。单元格(计数器,1).value您说它已停止工作。它从工作时到现在发生了什么变化?是否可以看到典型的“NCR报告”选项卡的外观?我正在将随机数插入单元格引用,它正在毫无问题地复制这些引用。忘记添加错误消息“运行时错误“9”:脚本超出范围不知道。该脚本在哪一行崩溃?它似乎位于hte a=工作表(“PM2”).Cells(计数器,1)上。值您说它已停止工作。从工作时到现在,有什么变化?是否可以看到典型的“NCR报告”选项卡的外观?我将随机数插入到单元格引用中,它将毫无问题地复制它们。谢谢。摆脱了空间,但知道获得运行时间13个错误,谢谢。已清除空间,但知道获取运行时13错误