范围不适用于工作表

时间:2015-06-01 08:43:32

标签: excel vba excel-vba

我在VBA中有以下代码。以下代码的问题是范围指的是data表格,并且一旦我在其他表格中,它就会失败。

monthname = Range("D5", Range("D5").End(xlToRight)).Cells.Count - 1

您能否请我提供一个解决方案,无论我在工作簿范围内的哪个位置,都应该从data表中选择?

3 个答案:

答案 0 :(得分:1)

使用

monthname = sheets("data").Range("D5", sheets("data").Range("D5").End(xlToRight)).Cells.Count - 1

顺便在这个论坛上进行一次小搜索,或谷歌会得到你这个答案。

答案 1 :(得分:0)

最好完全限定你的射程。 使用

Dim ws as Worksheet
Set ws = ActiveWorkbook.Sheets("data")   ' or an alternative suitable for your case
Dim monthname as Long
monthname = ws.Range("D5", ws.Range("D5").End(xlToRight)).Cells.Count - 1

请注意,对D5的第二次引用也是合格的,否则您可能会遇到麻烦。

PS:为什么你会将月份名称作为整数?

答案 2 :(得分:0)

使用

monthname = sheet("数据")。范​​围(" D5",工作表("数据")。范​​围(" D5" ).End(xlToRight))。Cells.Count - 1 顺便在这个论坛上进行小搜索或google会得到你这个答案。