#vba #excel
#vba #excel
Вопрос:
У меня есть большой файл Excel, в котором данные извлекаются из базы данных и экспортируются в Excel, где формируется график. Цвет различных частей графика контролируется функцией, в которой вы заполняете ячейку на другом листе, и считываете ее с помощью кода. Проблема в том, что код будет работать только до тех пор, пока есть один цвет, теперь я хочу использовать свой шаблон, таким образом, формат Ячейки -> Заливка -> Стиль шаблона. Я пытался решить это таким образом, но я получаю ошибку времени выполнения 438 в строке со скобками. Любая помощь приветствуется!
Else
.FullSeriesCollection(i).ChartType = xlLineStacked
.FullSeriesCollection(i).Format.line.Weight = 2.5
.FullSeriesCollection(i).Format.line.ForeColor.rgb = _
getRGB(findInSub(setupLC, findInCategory(tables, _
Right(tbl.Name, Len(tbl.Name) - 3)).offset(0, 6), lineC, _
.SeriesCollection(i).Name))
With Sheets("mysheet").Range("mycell")
If .Cells.Interior.Pattern = -4142 Or .Cells.Interior.Pattern = 1 Then
.FullSeriesCollection(i).Format.Fill.Patterned = .Interior.Color
Else
(.FullSeriesCollection(i).Format.Fill.Patterned = .Cells.DisplayFormat.Interior.PatternColor)
End If
End With
End If
End If
Next i
End With
End With
/ Йохан
Комментарии:
1. Не вижу «отмеченной строки» в вашем коде :). Пожалуйста, укажите, какая строка выдает ошибку
2. Я не знал, как пометить строку, поэтому теперь вокруг нее есть круглые скобки. Этот: (.FullSeriesCollection(i) . Формат.Заполнить. Шаблон = .Ячейки. Формат отображения. Интерьер. Цвет шаблона)
Ответ №1:
Вот проблема, которую я вижу: вы вызываете .FullSeriesCollection
внутри With
блока, который ссылается на диапазон, тогда .FullSeriesCollection
как не является частью объекта диапазона. Это часть Chart
объекта. Кажется, у вас есть несколько With
блоков. Я бы предложил вместо использования With Sheets("mysheet").Range("mycell")
WITH block просто использовать полную ссылку для перехода к .Cells
(т.Е. Thisworkbook.Worksheets("mysheet").Range("mycell").Cells ...
). Это должно решить проблему, если ваш With
блок до этого ссылается на Chart
объект