【问题标题】:Count number of rows in a different Excel Sheet [duplicate]计算不同Excel工作表中的行数[重复]
【发布时间】:2014-06-24 18:39:05
【问题描述】:

它在同一个工作簿中。我在 Sheet3 的一个范围内有几个数字,按钮在 Sheet2 中。我希望它计算行数,然后在 msgbox 中将值返回给我。如果我在 Sheet3 打开的情况下运行它,它运行良好。如果我使用不同的工作表运行它,我会收到计数部分的对象错误。无论哪个工作表处于活动状态,它都会在单元格 A2 中插入 3。

Sub problem3run()
Dim rngtest As Range

Set rngtest = Sheet3.Range("A2")

rngtest.Value = 3

Dim rngacount As Integer
rngacount = Sheet3.Range(Range("A4"), Range("A4").End(xlDown)).Rows.Count

MsgBox (rngacount)

End Sub

这有什么问题?

【问题讨论】:

  • 你在哪里定义Sheet3

标签: vba excel


【解决方案1】:

这里有两个问题。第一个是数据类型Integer 不能保存某些excel 文件中的所有行,因此您需要改用Long。第二个是您使用不合格的range 对象定义rngacount。试试这个:

Sub problem3run()
Dim rngtest As Range

Set rngtest = Sheet3.Range("A2")

rngtest.Value = 3

Dim rngacount As Long '<~ use Long here rather than Integer
With Sheet3 '<~ use a With here to qualify ranges
    rngacount = .Range(.Range("A4"), .Range("A4").End(xlDown)).Rows.Count
End With

MsgBox (rngacount)

End Sub

【讨论】:

  • 你需要一个 '.'在第一个 Range 之前。
  • 成功了,谢谢!
  • 大眼睛@LanceRoberts,我已经更新了上面的响应以限定第一个range 对象。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-12
  • 2011-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多