2015-11-03 82 views
0

我的目標是記錄構建過程記錄庫存標籤,然後跟進驗證成品的檢查表。由於我只在第一階段(記錄庫存標籤),我還有很長的路要走。將用戶窗體中的數據傳輸到工作表

我想用我的UserForm做什麼是使用手持式掃描儀掃描條形碼(庫存標籤),並讓他們填充底層的電子表格,當我點擊「提交」按鈕。但是,下面的代碼會生成此錯誤:

Run Time Error '424' object required

我在做什麼錯?

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

我假設'Database'是一個工作表變量。你需要把它放在每個'... Cells ...的前面''像這樣'Database.Cells ...' –

+0

數據庫就是表格名稱(所以我猜它也是一個變量)。將做出改變並看看它是如何工作的。 – CimpleSypher

+0

嘿Pnuts,非常感謝。我需要你的幫助和Neuralgroove。 – CimpleSypher

回答

0

兩種解決方案(包括承擔的「數據庫」是在您的工作簿表名稱)

  1. 無法通過這樣的名字參考表。您必須將其背景名稱設置爲「數據庫」(在VBA IDE中 - >項目資源管理器 - >您的項目 - > Microsoft Excel對象 - >查找名爲數據庫的工作表,右鍵單擊屬性 - >更改「名稱」屬性到「數據庫」)然後,您將看到括號中的「數據庫」作爲項目資源管理器中Microsoft Excel對象下的基礎工作表名稱,您可以在代碼中引用它。

  2. 其他更簡單的方法是將其添加到您的代碼中。

    Dim Database as Worksheet 
    Set Database = Worksheets("Database") 
    

然後,你可以參考它,你是在你的代碼。

CimpleSypher是正確的,您需要將單元格調用綁定到工作表,否則它會將值放入當前處於活動狀態的任何表單中。

+0

謝謝!我會做出改變並讓你知道它是如何工作的。我開始時錯過了那個領域。 – CimpleSypher

+0

嘿Neuralgroove, – CimpleSypher

0

Both 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 

我還需要將對象的名稱屬性更改爲數據庫,如Neuralgroove所述。

相關問題