Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 库存宏-组合步骤和while循环?_Excel_Vba - Fatal编程技术网

Excel 库存宏-组合步骤和while循环?

Excel 库存宏-组合步骤和while循环?,excel,vba,Excel,Vba,我正在处理一个库存控制宏,在该宏中,我扫描代码、区域、团队和条形码,以确定项目是被扫描进还是被扫描出。现在,我正在为每个功能使用4个不同的按钮(1.产品2.团队3.区域4.输入/输出)。我希望有人能帮助改进这一点,这样只需按下一个按钮,您只需连续扫描所有4个弹出框。我还试图找出如何创建while循环,以便在扫描一个产品的所有4个类别后,它会自动跳到下一行,开始扫描新产品。我假设这需要一个do-while循环,但我正在努力实现它,因为我还没有自动完成所有4个步骤 我试过运行do-while代码,但

我正在处理一个库存控制宏,在该宏中,我扫描代码、区域、团队和条形码,以确定项目是被扫描进还是被扫描出。现在,我正在为每个功能使用4个不同的按钮(1.产品2.团队3.区域4.输入/输出)。我希望有人能帮助改进这一点,这样只需按下一个按钮,您只需连续扫描所有4个弹出框。我还试图找出如何创建while循环,以便在扫描一个产品的所有4个类别后,它会自动跳到下一行,开始扫描新产品。我假设这需要一个do-while循环,但我正在努力实现它,因为我还没有自动完成所有4个步骤

我试过运行do-while代码,但我很难让它正常工作,但我首先要弄清楚如何让这四个步骤在前一个步骤之后自动弹出

Sub ScanProductBarcode_Click()

Dim Barcode
Dim ProductGroup

Barcode = InputBox("Please scan a PRODUCT barcode and hit enter if you need to")
ThisWorkbook.Sheets("Sheet2").Range("A2") = Barcode
ThisWorkbook.Sheets("Sheet2").Range("A2").Offset(0, 5) = Now 'Cell Formatted for Date
ThisWorkbook.Sheets("Sheet2").Range("A2").Offset(0, 6) = Now 'Cell Formatted for Time

End Sub

Sub ScanTeamBarcode_Click()

Dim Team

Team = InputBox("Please scan the TEAM barcode and hit enter if you need to")
ThisWorkbook.Sheets("Sheet2").Range("H2") = Team

End Sub


Sub ScanRegionBarcode_Click()

Dim Region

Region = InputBox("Please scan the REGION barcode and hit enter if you need to")
ThisWorkbook.Sheets("Sheet2").Range("J2") = Region

End Sub

Sub ScanInOut_Click()

Dim InOut

InOut = InputBox("Please scan the device IN or OUT barcode and hit enter if you need to")
ThisWorkbook.Sheets("Sheet2").Range("L2") = InOut

End Sub
希望有人能帮助我运行所有四个扫描步骤,只需单击一个按钮,然后在跳转到excel的下一行开始扫描下一个产品。
提前谢谢

要扫描循环中的所有条形码:

Sub ScanAllBarcodes_Click()

    Dim Barcode, Team, Region, InOut
    Dim ProductGroup, rw As Range

    Do

        Barcode = GetBC("PRODUCT")
        If Len(Barcode) = 0 Then Exit Do '<<<  empty input terminates loop

        Team = GetBC("TEAM")
        Region = GetBC("REGION")
        InOut = GetBC("device IN or OUT")

        Set rw = ThisWorkbook.Sheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Offset(1).EntireRow
        'make sure the row is really empty (in case of missing "A" value)
        Do While Application.CountA(rw) > 0
            Set rw = rw.Offset(1, 0)
        Loop

        With rw
            .Cells(1) = Barcode
            .Cells(6) = Now
            .Cells(7) = Now
            .Cells(8) = Team
            .Cells(10) = Region
            .Cells(12) = InOut
        End With

    Loop

End Sub

Function GetBC(nm)
    GetBC = InputBox("Please scan a " & nm & " barcode and hit enter if you need to")
End Function
子扫描所有条形码\u单击()
Dim条形码、团队、区域、输入输出
Dim ProductGroup,rw As系列
做
条形码=GetBC(“产品”)

如果Len(Barcode)=0,则在扫描所有4个项目(尽管有特定行)后,是否退出“我收到一个错误,显示“运行时错误424对象必需”?你有一张名为“Sheet2”的表格吗?是的,我有,这就是我想要信息记录的地方我知道问题出在哪里了。我意识到我的第一列被标题占据了,所以我不得不更改应用程序。countA(rw)>0到>1非常感谢!