[英]vba excel sheets.range.value Error
因此,有时当我尝试执行此命令时,它给我一个错误。 问题是它非常不一致。 在某些情况下,它可以工作,而在其他情况下,则不能。
这是getCellVal函数的代码行。 cellName是一个字符串,s是一个整数。
getCellVal = Sheets(s).Range(cellName).Value
这次是给我的:运行时错误“ 438”:对象不支持此属性或方法
这条线实际上在没有问题的情况下就可以正常工作了。 我添加了使用它的其他一些功能,现在它不再起作用。
有什么想法吗?
对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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.