Рисование Rectagles в Excel, Entire Row, «Ошибка времени выполнения:« 1004 »»

Я упростил свой код:

Я хочу нарисовать два прямоугольника: от первой до левой стороны выбранной ячейки (код не предназначен для первого столбца «А»). Вторая справа от выбранной ячейки (код не предназначен для последнего столбца «XFD») ,

Функция, которую должен использовать оба кода.

Private Function NumToCol(numCol) NumToCol = Split(Cells(, numCol).Address, "$")(1) End Function 

Вот мой код:

  Sub CreateLateralRectangles() 'Working no problem Dim LftRctl As Shape Dim RhtRctl As Shape Dim RngRht As Range Dim RngLft As Range MyRow = ActiveCell.Row MyCol = ActiveCell.Column LftCol = MyCol - 1 RgtCol = MyCol + 1 LRng = NumToCol(LftCol - 3) & MyRow & ":" & NumToCol(LftCol) & MyRow RRng = NumToCol(RgtCol) & MyRow & ":" & NumToCol(RgtCol + 3) & MyRow Set RngRht = Range(RRng) Set RngLft = Range(LRng) MsgBox "Beging To Create" Set LftRctl = ActiveSheet.Shapes.AddShape(msoShapeRectangle, RngLft.Left, RngLft.Top, RngLft.Width, RngLft.Height) Set RhtRctl = ActiveSheet.Shapes.AddShape(msoShapeRectangle, RngRht.Left, RngRht.Top, RngRht.Width, RngRht.Height) End Sub 

Следующий код представляет «Ошибка времени выполнения:« 1004 »« «Определенная приложением или объектная ошибка»,

  Sub CreateFullRectangles() 'Has problem Dim LftRctl As Shape Dim RhtRctl As Shape Dim RngRht As Range Dim RngLft As Range MyRow = ActiveCell.Row MyCol = ActiveCell.Column LftCol = MyCol - 1 RgtCol = MyCol + 1 LRng = "A" & MyRow & ":" & NumToCol(LftCol) & MyRow RRng = NumToCol(RgtCol) & MyRow & ":" & "XFD" & MyRow Set RngRht = Range(RRng) Set RngLft = Range(LRng) MsgBox "Beging To Create" Set LftRctl = ActiveSheet.Shapes.AddShape(msoShapeRectangle, RngLft.Left, RngLft.Top, RngLft.Width, RngLft.Height) Set RhtRctl = ActiveSheet.Shapes.AddShape(msoShapeRectangle, RngRht.Left, RngRht.Top, RngRht.Width, RngRht.Height) End Sub 

Но я не могу понять, что такое реальная ошибка. Во втором коде:

    Ваш RRng слишком велик. RngRht.Width равен 785712. Попробуйте уменьшить его, уменьшив диапазон. Я изменил XFD на FD, чтобы уменьшить его. Вы можете изменить его в соответствии с потребностями вашего кода.

     RRng = NumToCol(RgtCol) & MyRow & ":" & "FD" & MyRow 
    Interesting Posts

    Преобразование строк excel в pdf-цикл

    Выделите дубликаты не следуя друг другу с помощью условного форматирования

    Несколько пользователей, редактирующих один файл Excel с помощью единого графического интерфейса

    UserForm не появляется после нажатия кнопки

    Вложенный оператор IF возвращает значение #VALUE

    Недопустимое исключение Cast при работе с целыми

    Excel VBA – Союз диапазонов и его поддиапазоны

    Как фильтровать диапазон с помощью Axlsx с фильтрами на некоторых столбцах

    Обновить таблицу JTable с данными из файла Excel

    Использование Excel для поиска числа дубликатов в столбце

    Выполнение нескольких запросов из листа Excel в VBScript

    Если, IsError, синтаксическая ошибка VLOOKUP – кто-нибудь знает почему?

    Удаление полупустых записей в Excel через VBA

    Как использовать проверку данных, чтобы позволить пользователю ТОЛЬКО вводить целое число, иначе оно выдает ошибку при вводе десятичной дроби

    Автоматическое сохранение PDF-файла в новой папке

    Давайте будем гением компьютера.