首页 文章

Excel vba:键入范围和单元格

提问于
浏览
6

我对vba(excel)中的单元格和范围感到有点困惑 . 从逻辑上讲,我可以将单元格视为size = 1的范围;而且我认为从一个细胞中制作一个范围很容易 .

如果我读取了EntireRow属性here的api,它就会在范围内运行 . 但是,下面的代码工作,表明循环内的'cell'变量是一个范围

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 回答

  • 4

    这编译并运行:

    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
    

相关问题