Пользовательская форма VBA: доступ к различным диаграммам в зависимости от Combobox

Я новичок в VBA и имею только опыт работы с MATlab.

На данный момент я пытаюсь использовать Userform для отображения разных графиков (на той же пользовательской форме), в зависимости от вывода ComboBox. Я основываю свой график на этом уроке. По сути, изображение сохраняется как GIF, а затем открывается с помощью Image Control.

Например, у меня есть диаграммы, сохраненные как Chart # _ ####; Chart1_4301. Последовательность чисел совпадает с параметрами в ComboBox – я хочу, чтобы 1_4301 в Combobox установил CurrentChart в Chart1_4301, а затем выполнил шаги сохранения GIF и загрузки изображений

Private Sub Open_Graph_But_Click() 'This sub opens a different graph depending on the combobox selection Set CurrentChart = "Chart" & ComboBox1.Value CurrentChart.Parent.Width = 900 CurrentChart.Parent.Height = 450 ' Save chart as GIF Fname = ThisWorkbook.Path & Application.PathSeparator & "temp.gif" CurrentChart.Export Filename:=Fname, FilterName:="GIF" ' Show the chart Image1.Picture = LoadPicture(Fname) End Subb 

Я не знаю, можно ли его перебирать разные имена графиков, и я попытался посмотреть, как это делается, но я не знаю, что это, как предполагается, называться, поэтому мне трудно найти что-то полезное.

То, что я нашел, привело меня к вышеуказанной настройке, но я получаю ошибку времени выполнения «13»: Type Mismatch, где Set CurrentChart = "Chart" & ComboBox1.Value подсвечивается. Любые советы приветствуются!

Я объясню это, я создал следующий макрос. У меня четыре диаграммы на активном листе: диаграмма 1, диаграмма 2, диаграмма 3 и диаграмма 4. В ячейке B23 я вхожу в «Название диаграммы» в виде диаграммы 1/2/3 или 4, на основании которой, мой следующий макрос работает. Независимо от того, какую диаграмму я вхожу, она устанавливает выбранную диаграмму как красный фон, а остаток 3 отформатирован как желтый фон. Я не мог приложить свою книгу, потому что не мог найти способ сделать это. Если вы все еще не понимаете, как это сделать, пришлите мне свой адрес электронной почты, и я загружу книгу.

 Sub RunMacro() Dim sht As Worksheet Dim co As ChartObject Dim selectedChart As String Set sht = ActiveSheet ' it may be your sheet like Worksheets("Sheet1") or Worksheets("Sheet2") selectedChart = sht.Range("B23").Value ' assign the selected chart from combobox Dim chrt As Chart '''option 1: Loop through all the charts For Each co In sht.ChartObjects If co.Name = selectedChart Then co.Chart.ChartArea.Format.Fill.ForeColor.RGB = RGB(255, 0, 0) Else co.Chart.ChartArea.Format.Fill.ForeColor.RGB = RGB(255, 255, 0) End If Next co 'option 2: select the chart directly and popup the size Set chrt = sht.ChartObjects(selectedChart).Chart MsgBox "Selected Chart is " & selectedChart & " and the chart is for " & chrt.ChartTitle.Text End Sub 

Надеюсь это поможет. Vikas B

  • Выход VBA в отношении кнопок выбора
  • Excel VBA Userform IIf (IsDate) не сохраняет пробел
  • Скрыть и отобразить определенные строки в зависимости от выбранного номера.
  • UserForm ComboBox
  • Отсутствует свойство Excel VBA «AxisBetweenCategories» в ChartSpace
  • Excel VBA - запись нескольких значений флажков пользовательской формы в одну ячейку
  • Userform.Show на кнопке формы не распознает пользовательскую форму, получив ошибку 424
  • Кнопка VBA Options, как подключиться к модулю?
  • Использование Combobox для выбора и кнопки выбора в excel userform
  • Заполнение вопросов ComboBox - дублирование значений при каждом выборе поля, а именованный диапазон не заполняется
  • Как заставить пользователя выбрать параметр, используя фреймы, excel userform
  • Давайте будем гением компьютера.