【问题标题】:Calculating number of rows in a table within a separate workbook计算单独工作簿中表中的行数
【发布时间】:2015-04-07 16:12:39
【问题描述】:

我最初在名为“table”的工作表“1”中有一个表格。在此工作簿中,我可以使用代码:

Private Sub CommandButton1_Click()
                latestSequenceNumber = 7
                MsgBox (latestSequenceNumber)
                latestSequenceNumber = Worksheets("1").ListObjects("table").Range.Row.Count 
                MsgBox (latestSequenceNumber)          
End Sub

以上方法有效。

现在,我已将带有表格的工作表移到位于同一文件夹中的名为“testLocation.xlsx”的新的单独工作簿中。因此,我现在一直在尝试使用此代码:

 Private Sub CommandButton1_Click()
    Set repo = Workbooks.Open("testLocation.xlsx")
               latestSequenceNumber = 7
                MsgBox (latestSequenceNumber)
                latestSequenceNumber = repo.Worksheets("1").ListObjects("table").Range.Row.Count 'object required error?!
                MsgBox (latestSequenceNumber)                
End Sub

关于为什么会引发“需要对象”错误和/或如何解决此问题的任何想法?

【问题讨论】:

  • 在您的新工作簿中,您是否还有定义并命名为 table1 的表?
  • Set repo = Workbooks.Open("testLocation.xlsx") 必须包含打开文件的完整路径,而不仅仅是工作簿名称。
  • 本书打开时没有完整的文件路径。但是会尝试,看看它是否有所作为。
  • 新工作簿确实有一个名为 table 的表。工作表称为 1 和表“表”

标签: excel object copying vba


【解决方案1】:

这将起作用:

Private Sub CommandButton1_Click()

    Set repo = Workbooks.Open("testLocation.xlsx")
    latestSequenceNumber = 7
    MsgBox (latestSequenceNumber)
    latestSequenceNumber = repo.Worksheets(1).ListObjects("table").Range.Rows.Count 'object required error?!
    MsgBox (latestSequenceNumber)
End Sub

我不确定您的问题是什么,因为您在代码示例中错过了“s”。你想要 Range.Rows 而不是 Range.Row.Count。

【讨论】:

  • 如果此工作表是工作簿中的第一张工作表,它将起作用。如果您需要引用名称,请将其放在引号中。
猜你喜欢
  • 2014-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多