我的目标是记录记录库存标签的构建过程,然后跟进验证成品的核对表。由于我只在第1阶段(记录库存标签),我还有很长的路要走。
我尝试使用我的UserForm正在使用手持式扫描程序扫描条形码(库存标签),并在我点击"提交"时,让它们填充底层电子表格。按钮。但是,下面的代码会生成此错误:
运行时错误' 424'需要的对象
我做错了什么?
Private Sub cmdSubmit_Click()
Dim eRow As Long
eRow = Database.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
Cells(eRow, 1).Value = txtDeviceID.Text
Cells(eRow, 2).Value = txtUserName.Text
Cells(eRow, 3).Value = txtUserNumber.Text
Cells(eRow, 4).Value = txtCloneDevice.Text
Cells(eRow, 5).Value = txtCartAssembly.Text
Cells(eRow, 6).Value = txtPC.Text
Cells(eRow, 7).Value = txtMonitor.Text
Cells(eRow, 8).Value = txtUPS.Text
Cells(eRow, 9).Value = txtHub.Text
Cells(eRow, 10).Value = txtKeyboard.Text
Cells(eRow, 11).Value = txtMouse.Text
Cells(eRow, 12).Value = txtPrinter.Text
Cells(eRow, 13).Value = txtWebcam.Text
Cells(eRow, 14).Value = txtScanner.Text
Cells(eRow, 15).Value = txtRFID.Text
答案 0 :(得分:0)
两个解决方案(假设"数据库"是工作簿中的工作表名称)
您无法按名称参考表格。您要么必须提供其背景名称"数据库" (在VBA IDE-> Project Explorer->您的项目 - > Microsoft Excel对象 - >找到名为Database的工作表,右键单击,Properties->将" Name"属性更改为"数据库")然后您将看到"数据库"在括号中作为Project Explorer中Microsoft Excel对象下的基础工作表名称,您可以在代码中引用它。
另一种更简单的方法是将其添加到您的代码中。
Dim Database as Worksheet
Set Database = Worksheets("Database")
然后您可以像在代码中一样引用它。
CimpleSypher是正确的,您需要将单元格调用绑定到工作表,否则它会将值放在当时处于活动状态的工作表中。
答案 1 :(得分:0)
Pnuts& Neuralgroove回答了这个问题,因为我的代码出了点问题。
正如Pnuts所说,由于这行代码说:
eRow = Database.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
然后后续行应该读:
Database.Cells(eRow, 1).Value = txtDeviceID.Text
而不是我最初的写作方式:
Cells(eRow, 1).Value = txtDeviceID.Text
我还需要将对象的name属性更改为Database,如Neuralgroove所描述的那样。