Так что это вопрос о том же большом проекте, которым занимаются мои другие.
Сейчас я просто убираю некоторое форматирование и, по сути, хочу подпрограмму (которую я могу вызвать от другого), которая автоматически добавит нужные мне границы вокруг новых данных, публикуемых на листе.
Я записал макрос добавления границ (и изменил диапазон на переменный - RowToPasteTo), и все работало хорошо.
Я попытался вызвать его из другого куска кода, и он стал бесполезным, теперь выдает ошибку:
Run-Time error '1004':
Unable to set the LineStyle Property of the Borders class
Как упоминалось в сообщении об ошибке, похоже, что это ошибка .LineStyle
, но я использую тот же стиль, что и мне дал их регистратор.
Как мне заставить это работать снова, чтобы завершить всеГраницы?
РЕДАКТИРОВАТЬ: Забыли добавить код - извините!
Sub Borders()
Dim RowToPasteTo As Long
With Sheets(4)
RowToPasteTo = .Cells(.Rows.Count, "B").End(xlUp).Row + 1
Range("B" & RowToPasteTo & ":" & "Z" & RowToPasteTo).Select
With Selection.Borders
.LineStyle = xlContinuous
.ThemeColor = 3
.TintAndShade = -9.99786370433668E-02
.Weight = xlThin
End With
End With
End Sub
РЕДАКТИРОВАТЬ 2: Этот фрагмент кода для вставки границ, когда каждая новая строка данных перемещается на этот лист(Метки сетки отключены, поскольку границы должны отображаться только в строках с данными.
Я перепробовал все предложенные поправки и до сих пор получаю ошибки при выполнении только вышеприведенного кода.
Теперь я также создал чистый лист (и соответствующим образом скорректировал номер листа), и там я получаю другую ошибку.
(Минимизированный) код, который позже будет вызывать этот фрагмент, если:
Sub ToTank()
Dim RowToPasteTo As Long
RowToPasteTo = .Cells(.Rows.Count, "B").End(xlUp).Row + 1
Sheets(4).Unprotect
.Range("A" & RowToPasteTo & ":" & "Z" & RowToPasteTo).Locked = False
Call Borders()
End Sub