Найти таблицу из заданной ячейки 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 петли работают, вы можете установить tempRange переменная, как это:

Set temp = Range(Cells(i-1, k-1), Cells(r+1, p+1)) '<~ no address needed

При этом вы уже предлагаете пользователю ввести данные - не могли бы вы попросить его или ее ввести левую верхнюю ячейку таблицы? От этого ваш код может быть значительно упрощен...

Другие вопросы по тегам