vba excel sheets.range.value错误
所以,有时当我尝试执行这个命令时,它给了我一个错误。 问题在于它非常不一致。 在某些情况下,它可以工作,而在其他情况下,则不会。
这是来自getCellVal函数的行。 cellName是一个string,s是一个整数。
getCellVal = Sheets(s).Range(cellName).Value
这一次它给我:运行时错误“438”:对象不支持此属性或方法
这条线实际上在没有问题的情况下, 我添加了一些其他function,使用它,现在它不再工作。
任何想法为什么?
对Sheets
集合的非限定调用隐式引用任何工作簿当前处于活动状态,知道该集合包含Worksheet
对象,还包括Chart
对象,这一点很重要。
由于您的意思是使用Worksheet
,请使用Worksheets
集合。
如果你没有得到“索引越界”的错误,那么你所要求的工作表确实存在。 但错误438指向该工作表不是一个Worksheet
(因此没有一个Range
成员)。
我敢打赌,活跃的工作簿在索引s
有一个图表。
解决办法是简单明了的。
如果要使用包含正在运行的代码的工作簿,请使用ThisWorkbook
限定Workbook
成员调用:
getCellVal = ThisWorkbook.Worksheets(s).Range(cellName).Value
如果您的意思是使用工作簿,那么您需要在打开Workbook
对象时注意:
Dim wb As Workbook Set wb = Application.Workbooks.Open(path) '... getCellVal = wb.Worksheets(s).Range(cellName).Value