将数据从UserForm传输到工作表

时间:2015-11-03 19:06:05

标签: excel vba excel-vba

我的目标是记录记录库存标签的构建过程,然后跟进验证成品的核对表。由于我只在第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

2 个答案:

答案 0 :(得分:0)

两个解决方案(假设"数据库"是工作簿中的工作表名称)

  1. 您无法按名称参考表格。您要么必须提供其背景名称"数据库" (在VBA IDE-> Project Explorer->您的项目 - > Microsoft Excel对象 - >找到名为Database的工作表,右键单击,Properties->将" Name"属性更改为"数据库")然后您将看到"数据库"在括号中作为Project Explorer中Microsoft Excel对象下的基础工作表名称,您可以在代码中引用它。

  2. 另一种更简单的方法是将其添加到您的代码中。

    Dim Database as Worksheet
    Set Database = Worksheets("Database")
    
  3. 然后您可以像在代码中一样引用它。

    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所描述的那样。