2014-04-30 51 views
0

我希望能夠在兩張表中添加多個數據。與我有一個錯誤:將值插入兩張

Run Time Error '91' : Object Variable or With Block not Set

參照這一行:

With Sheetclient = ThisWorkbook.Sheets(CMB_Test.Value) 

第一頁是由一個組合框的值選擇和它的工作很好,第二頁會自動東西的page:「testbit」。

Private Sub Save_test_Click() 

Dim Sheetclient As Worksheet 
Dim testbit1 As Worksheet 
Dim nr As Integer, lr As Integer 

With Sheetclient = ThisWorkbook.Sheets(CMB_Test.Value) 
nr = Sheetclient.Cells(Rows.Count, 1).End(xlUp).Row + 1 
Sheetclient.Cells(nr, 5) = Me.TB_dateBit.Value 
Sheetclient.Cells(nr, 6) = Me.serial.Value 
Sheetclient.Cells(nr, 7) = Me.matrice.Value 
Sheetclient.Cells(nr, 8) = Me.CMB_config.Value 
Sheetclient.Cells(nr, 9) = Me.lifetime.Value 

End With 

With testbit1 = ThisWorkbook.Sheets("testbit") 
nr = testbit1.Cells(Rows.Count, 1).End(xlUp).Row + 1 
testbit1.Cells(nr, 1) = Me.TB_dateBit.Value 
testbit1.Cells(nr, 2) = Me.serial.Value 
testbit1.Cells(nr, 3) = Me.matrice.Value 
testbit1.Cells(nr, 4) = Me.CMB_config.Value 
testbit1.Cells(nr, 5) = Me.lifetime.Value 
End with 

End 

End Sub 
+1

是第二部分http://stackoverflow.com/questions/5281759/simple-vba-code-gives-me-run -time-error-91-object-variable-or-with-block-not-set的任何幫助?通常你需要'設置'對象... – Floris

+0

檢查VBA文檔是否正確使用與 –

回答

2

您需要Set對象 - 並具有Set它,你可以使用.引用它。因此,你的代碼可能是這樣的:

Set Sheetclient = ThisWorkbook.Sheets(CMB_Test.Value) 
With Sheetclient 
    nr = .Cells(Rows.Count, 1).End(xlUp).Row + 1 
    .Cells(nr, 5) = Me.TB_dateBit.Value 
    .Cells(nr, 6) = Me.serial.Value 
    .Cells(nr, 7) = Me.matrice.Value 
    .Cells(nr, 8) = Me.CMB_config.Value 
    .Cells(nr, 9) = Me.lifetime.Value 
End With 

相同的代碼

+0

它不適用於第二個。我有en錯誤消息:下標超出範圍(錯誤9) – Max078

+0

該錯誤消息表明您在「ThisWorkbook」中沒有名爲「testbit」的工作表。您可以嘗試「工作簿」(「工作簿的名稱」)。表格(「工作表名稱」) - 而不是引用「ThisWorkbook」。有時候這種方法效果更好 – Floris

+1

這是工作謝謝你! – Max078