Excel vba: тип диапазона и ячейки - PullRequest
7 голосов
/ 26 февраля 2012

Я немного сбит с толку клеткой и диапазоном в VBA (Excel). По логике вещей, я мог бы представить ячейку как диапазон с размером = 1; и я думаю, что легко сделать диапазон из клетки.

Если я читаю API свойства CompleteRow здесь он работает на дальности. Но приведенный ниже код работает, указывая, что переменная ячейки внутри цикла - это диапазон

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 Ответ

5 голосов
/ 26 февраля 2012

Компилируется и запускается:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...