Excel vba:input范围和单元格

在vba(excel)中,我有点困惑于单元格和范围。 从逻辑上讲,我可以把一个单元看作size = 1的范围。 我认为从一个单元格中划出一个范围是很容易的。

如果我在这里阅读EntireRow属性的api,它会在范围内运行。 但是,下面的代码工作,指示循环内的“cell”variables是一个范围

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函数时返回一个指示types不匹配的错误。 函数定义中应该是什么types的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 

这编译和运行:

 Sub Tester() Dim spRange As Excel.Range Dim cell As Excel.Range Dim mySheet As Excel.Worksheet Dim val As Boolean Set mySheet = ActiveSheet Set spRange = mySheet.Range("b2", mySheet.Range("b2").End(xlDown)) For Each cell In spRange val = removecell(cell) Next cell End Sub Public Function removecell(targCell As Range) As Boolean removecell = False End Function