Может кто поможет решить проблему? Представленный код VBA предназначен для обработки данных в Excel посредством макросов и выполнения одной из двух операций в зависимости от выбранного пользователем варианта:
При выборе кнопки "Построить спарклайны" выходит такая ошибка Run-time error '448': Макрорекодер указывает на SourceData, не понимаю почему, все аргументы для метода .Add были соблюдены, также соблюден официальный порядок параметров для этого метода.
| Код |
|---|
'Подключаемся к событию клика по кнопке Private Sub CommandButton1_Click() Call CreateVisuals End Sub 'Основная процедура построения графиков и спарклайнов Public Sub CreateVisuals() Dim ws As Worksheet Dim rngData As Range Dim lastRow As Long, lastCol As Long Dim dataRange As String Dim colLetter As String Set ws = ActiveSheet 'Автоматическое определение границ таблицы lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row lastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column Set rngData = ws.Range(ws.Cells(1, 1), ws.Cells(lastRow, lastCol)) 'Получаем букву столбца по последнему столбцу colLetter = GetColumnLetter(lastCol) 'Выполняем операцию согласно выбору пользователя If OptionButton1.Value = True Then 'Создание спарклайнов Dim i As Long For i = 2 To lastRow dataRange = "=""" & ws.Name & """!$B$" & i & ":$" & colLetter & "$" & i With ws.Cells(i, lastCol + 1) .SparklineGroups.Add _ Type:=xlSparkLine, _ SourceData:=dataRange, _ Location:=.Offset(0, 0) .SparklineGroups.Item(1).Position = xlSparklinePositionCellCenter End With Next i ElseIf OptionButton2.Value = True Then 'Создание диаграммы Dim chtObj As ChartObject Set chtObj = ws.ChartObjects.Add(Left:=100, Width:=375, Top:=50, Height:=225) With chtObj.Chart .SetSourceData Source:=rngData .chartType = xlColumnClustered .HasTitle = True .ChartTitle.Text = "Выручка, тыс.руб." End With MsgBox "Диаграмма создана" Else MsgBox "Выберите действие" End If Unload Me End Sub |
При выборе кнопки "Построить спарклайны" выходит такая ошибка Run-time error '448': Макрорекодер указывает на SourceData, не понимаю почему, все аргументы для метода .Add были соблюдены, также соблюден официальный порядок параметров для этого метода.
Изменено: - 05.03.2026 08:40:02
(Обратите внимание - код в сообщении выделяется соответствующим тэгом)