【发布时间】:2012-02-27 02:36:44
【问题描述】:
我对 vba (excel) 中的单元格和范围有点困惑。 从逻辑上讲,我可以将单元格视为大小 = 1 的范围;而且我认为从一个单元格中创建一个范围很容易。
如果我阅读 EntireRow 属性的 api here 它在范围内运行。但是,下面的代码可以工作,表明循环内的“单元格”变量是一个范围
Set import = Sheets("import")
Set spRange = import.Range("A2")
Set spRange = import.Range("A2:" & spRange.End(xlDown).Address)
For Each cell In spRange
dict.Add cell.Offset(0, 2).Text, cell.EntireRow
Next cell
同时,下面的代码在调用removecell函数时会返回类型不匹配的错误。函数定义中targetCell的类型应该是什么?
Set spRange = mySheet.Range("b2", mySheet.Range("b2").End(xlDown))
For Each cell In spRange
val = removecell (cell)
Next cell
Public Function removecell(targCell As Range) As Boolean
removecell = False
End Function
【问题讨论】:
-
你是对的。单元格是一个包含 1 个项目的范围。
val是Boolean类型的吗? -
是的。此方法以前在我传递“cell.Text”时有效,并在删除方法 cellVal As String 中接受它。现在我试图通过传递单元格而不是 cell.Text 来传递单元格(范围)本身