【问题标题】:Insert Value in 2 sheets在 2 张纸中插入值
【发布时间】:2016-01-27 03:47:34
【问题描述】:

我希望能够在 2 张纸中添加多个数据。我有一个错误:

运行时错误“91”:对象变量或未设置块

参考这一行:

With Sheetclient = ThisWorkbook.Sheets(CMB_Test.Value)

第一个页面由组合框值选择,并且运行良好,第二个页面将自动something页面:“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

【问题讨论】:

标签: vba excel


【解决方案1】:

您需要 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

代码的第二部分也是如此

【讨论】:

  • 它不适用于第二个。我收到错误消息:下标超出范围(错误 9)
  • 该错误消息表明您在ThisWorkbook 中没有名为“testbit”的工作表。您可以尝试Workbooks("name of workbook").Sheets("name of sheet") - 而不是引用ThisWorkbook。有时效果会更好。
猜你喜欢
  • 2023-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多