无法获得excel工作表的范围

时间:2014-02-07 17:39:34

标签: excel vba excel-vba

我目前正在尝试从工作簿中提取某些数据以放入不同的工作簿。我已经使用

打开了工作簿
Application.GetOpenFile    

,然后将其分配给工作簿。然后我将工作表分配给该工作簿中的活动工作表。

我的问题来自于试图获取工作表的范围。我正在使用一串字符串(比如

    columnLetter(0) = "A"
    columnLetter(1) = "B"

等尝试检查某些字符串的所有列(在if语句中列出了大量的“或”)。字符串的具体位置因文件而异,所以我的计划是搜索第一行,然后搜索第二行等,直到找到其中一个字符串。所以,我正在使用它:

    lastRow = brokerSheet.Range(columnLetter(i) & Rows.Count).End(xlUp).Row

专门获取该列中的行数。但是,当我运行程序时,我收到错误

    Method 'Range' of object '_Worksheet' failed

就在那条线上。我猜这是因为我正在尝试使用

     columnLetter(i)

,其中分配了A到R,而不是“A”或类似列名。但是,我尝试使用1,2,3等代表第一列,第二列,第三列......但这不起作用。该工作表只有大约90行(虽然有些行将在我工作时有400行)。还有另一种方法吗?我可以为所有这些写出“A”“B”“C”等,但是必须有一种更好的方法来指定要检查的列。

1 个答案:

答案 0 :(得分:1)

为什么不尝试创建一个字符串对象strRange并将其注入Range()

strRange = columnLetter(i) & CStr(Rows.Count)
lastRow = brokerSheet.Range(strRange).End(xlUp).Row

这应该有效