gpt4 book ai didi

vba excelsheets.range.value错误

转载 作者:行者123 更新时间:2023-12-03 02:28:27 27 4
gpt4 key购买 nike

所以,有时当我尝试执行此命令时,它会给我一个错误。问题是它非常不一致。在某些情况下,它有效,而在其他情况下,它就不起作用。

这是来自 getCellVal 函数的行。 cellName 是一个字符串,s 是一个整数。

getCellVal = Sheets(s).Range(cellName).Value

这次它给了我:运行时错误“438”:对象不支持此属性或方法

这条线不久前实际上运行没有问题。我添加了一些使用它的其他函数,但现在它不再工作了。

关于原因有什么想法吗?

最佳答案

Sheets 集合的非限定调用隐式引用当前事件的任何工作簿,并且了解该集合包含 Worksheet 对象非常重要,...而且 图表对象。

由于您打算使用 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

关于vba excelsheets.range.value错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45596235/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com