---- обновлено с более подробной информацией ---
Я создал макрос vba, который отлично работает в Excel 2013, но имеет ошибку в Excel 2016. Макрос очень прост и взят из «записанного макроса»: он устанавливает границы для некоторых ячеек.
Проблема (я полагаю) состоит в том, что в ячейки также входят отфильтрованные строки:
column_1
cells(1;1) = "aa"
cells(2;1) = 2
cells(3;1) = 1
cells(4;1) = 2
cells(5;1) = 1
cells(6;1) = 1
отфильтровано с "1" в первом ряду
введите описание изображения здесь
Итак, запустив следующий макрос,
у вас ошибка «1004» в строке «.weight»
введите описание изображения здесь
Давая ОК, вы получаете:
введите описание изображения здесь
и если вы сейчас остановите макрос и попытаетесь сохранить файл,
вы получите ошибку:
введите описание изображения здесь
Обратите внимание, что это происходит только с Excel 2016, Excel 2013 не имеет проблем
Это полный макрос:
Опция Явная
Sub test()
Sheets(1).Select
Range("A1:A6").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin ' ==>>>>ERROR HERE
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Пожалуйста, помогите
Thx