MS VBA, изменить диапазон данных графика

Существует два списка, каждый из которых содержит имена автозапчастей, а другой – какие части выбраны пользователем.

Список полей

Каждая часть имеет название части, дату ее производства и мощность линии. Цель состоит в том, что, как только пользователь выбирает, какие части он хочет видеть, как это влияет на пропускную способность линии, когда он нажимает кнопку «Сделать меня диаграммой», отображается гистограмма с только теми частями, которые он / она выбран.

Я использовал два цикла For и один. Если затем инструкция для каждого из выбранных имен и для каждой ячейки в диапазоне, где указаны все имена части, он будет искать это имя, после его обнаружения он будет создавать диапазон, который включает имя этой части , дату производства и мощность. Наконец, он добавит этот диапазон, используя команду Union в диапазон графика.

Однако, когда код работает, на графике отображаются только текущая емкость и последнее имя части (две полосы).

Любые идеи относительно того, что я делаю неправильно?

Dim actualrange As Range Dim totalrange As Range Dim c As Range Dim workingrange As Range Dim findingnameo As Long Set totalrange = Range("M1:DA1") Dim p As Long Dim tryingrange As Range For p = 0 To SelectedListBox.ListCount - 1 For Each c In totalrange.Cells If c.Text = SelectedListBox.List(p) Then findingnameo = Sheets("The Master").Range("M1:DA1").Find(c.Value, searchdirection:=xlNext, SearchOrder:=xlByColumns).Column Dim thename As Range Dim thedate As Range Dim thecap As Range Set thename = Cells(1, findingnameo) Set thedate = Cells(2, findingnameo) Set thecap = Cells(3, findingnameo) Set workingrange = Union(thename, thedate, thecap) Dim currentcap As Range Set currentcap = Range("M1:M3") Set actualrange = Union(currentcap, workingrange) End If Next c Next p 

Спасибо!!

Думал, что это было сложнее, чем на самом деле …

Тусклый ток в качестве диапазона

  Set currentcap = Range("M1:M3") Set actualrange = currentcap For p = 0 To SelectedListBox.ListCount - 1 For Each c In totalrange.Cells If c.Text = SelectedListBox.List(p) Then findingnameo = Sheets("The Master").Range("M1:DA1").Find(c.Value, searchdirection:=xlNext, SearchOrder:=xlByColumns, LookAt:=xlWhole).Column Dim thename As Range Dim thedate As Range Dim thecap As Range Set thename = Cells(1, findingnameo) Set thedate = Cells(2, findingnameo) Set thecap = Cells(3, findingnameo) Set workingrange = Union(thename, thedate, thecap) Set actualrange = Union(actualrange, workingrange) End If Next c Next p 

Мне просто нужно было сделать

 set actualrange= Union(actualrange,workingrange) 

вместо

 set actualrange = Union(currentcap, workingrange) 

Вы учитесь по своим ошибкам?

Хотя, пожалуйста, поделитесь советами или трюками, я хочу учиться!

  • Ошибка времени выполнения '1004': метод 'FormulaR1C1' объекта 'Range' не выполнен
  • Диапазон копирования NPOI на другой рабочий лист
  • Динамическая ссылка на UsedRange в VBA
  • Excel использует имя диапазона в качестве аргумента функции excel
  • INDEX назвал диапазоны, используя COUNTA, замедляющую производительность
  • Использование переменных в диапазоне Excel
  • Как получить Справочник столбцов динамического диапазона в Excel :)
  • Попытка увидеть, попадают ли данные в один из нескольких диапазонов дат в SQL
  • Перебирайте ячейки и скопируйте значения в соответствии с условием if
  • Превосходный динамический диапазон движения 12 месяцев
  • Обработка ошибок Excel для объекта диапазона
  • Interesting Posts

    Как скопировать последние 10 активных строк вместо последней активной строки

    Закрытие окна браузера с помощью VBA, excel

    Добавить коды для динамически созданных активных x-checkbox с помощью vba

    Формула Excel: как удалить две последние цифры или две последние буквы в столбце?

    Введите формулу клетки, используя VBA

    Объединенные ячейки python openpyxl

    Использование массива для критериев автофильтрации

    Ошибка регистрации mscal.ocx для использования старого календаря в excel vba

    Swagger / OpenAPI для конвертируемого человеком документа (Excel, Word …)

    Power Query – Yahoo – ошибка HTTP 301

    Excel VBA добавляет данные в диаграмму

    обновить все ячейки в столбце на основе записи пользователя в любой ячейке в этом столбце

    добавить строку после каждого промежуточного итога excel vba

    Группировать несколько строк в одно поле в Excel

    Последняя использованная ячейка в диапазоне – excel 2013

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