Найти таблицу из заданной ячейки excel-vba
У меня есть таблица, которая расположена где-то в электронной таблице, например, b3:f15, и рядом с ней нет ничего (пустые ячейки), я пытаюсь выбрать эту таблицу и раскрасить ее. Почему-то мой код не работает, и я просто не могу найти свою логическую ошибку
Sub colorize_table()
Dim temp As Range
Set temp = Application.InputBox(prompt:="Please choose cell", Type:=8)
Dim i As Integer, k As Integer
Dim r As Integer, p As Integer
i = temp.Row
k = temp.Column
r = temp.Row
p = temp.Column
While temp(i, k) <> ""
While temp(i, k) <> ""
i = i - 1
Wend
k = k - 1
Wend
While temp(r, p) <> ""
While temp(r, p) <> ""
r = r + 1
Wend
p = p + 1
Wend
Set temp = Range(Cells(i-1, k-1).Address, Cells(r+1, p+1).Address)
temp.Interior.ColorIndex = 36
End Sub
Какие-либо предложения? заранее спасибо
2 ответа
Решение
Использование:
temp.CurrentRegion.Interior.ColorIndex = 36
вместо зацикливания.
Если твой While/Wend
петли работают, вы можете установить temp
Range
переменная, как это:
Set temp = Range(Cells(i-1, k-1), Cells(r+1, p+1)) '<~ no address needed
При этом вы уже предлагаете пользователю ввести данные - не могли бы вы попросить его или ее ввести левую верхнюю ячейку таблицы? От этого ваш код может быть значительно упрощен...