Макрос графика Microsoft Excel VBA - PullRequest
0 голосов
/ 25 января 2019

Используя VBA, я хотел бы создать макрос, который будет отображать выбранную область перед запуском макроса. У меня есть макрос, который может каждый раз отображать один и тот же выбор данных, но мне бы хотелось, чтобы он отображал выбор. Мой текущий код включен ниже. Спасибо.

Sub AddChart()
'
' AddChart Macro
'
' Keyboard Shortcut: Ctrl+Shift+D
'
 With ActiveSheet.ChartObjects.Add _
            (Left:=100, Width:=375, Top:=75, Height:=225)
        .Chart.SetSourceData Source:=Sheets("Sheet1").Range("A1:B9")
        .Chart.ChartType = xlXYScatter
    End With


End Sub

Ответы [ 2 ]

0 голосов
/ 26 января 2019

Если вы хотите превратить текущие selected ячейки в диаграмму, вы можете использовать Application.Selection.Когда у вас выбрана ячейка или ячейки, Application.Selection вернет значение диапазона.Мы можем передать это непосредственно в источник.

Мы проверяем typeOf, чтобы убедиться, что текущий выбор является диапазоном, чтобы избежать любых досадных ошибок.

Public Sub AddChart()
'
' AddChart Macro
'
' Keyboard Shortcut: Ctrl+Shift+D
'

If TypeOf Selection Is Range Then
 With ActiveSheet.ChartObjects.Add _
            (Left:=100, Width:=375, Top:=75, Height:=225)
        .Chart.SetSourceData Source:=Application.Selection
        .Chart.ChartType = xlXYScatter
    End With
End If

End Sub
0 голосов
/ 26 января 2019

Если я правильно понял:

Sub AddChart()
'
' AddChart Macro
'
' Keyboard Shortcut: Ctrl+Shift+D
'
Dim auxStr As String
auxStr = InputBox("Enter valid cell range, like A1:B9")
 With ActiveSheet.ChartObjects.Add _
            (Left:=100, Width:=375, Top:=75, Height:=225)
        .Chart.SetSourceData Source:=Sheets("Sheet1").Range(auxStr)
        .Chart.ChartType = xlXYScatter
  End With
End Sub

Вы также можете добавить другие переменные, для Left, Width и т.д .; все с помощью поля ввода. Конечно, если вам нужно отредактировать много переменных, модальную пользовательскую форму будет проще поддерживать и правильный способ не допустить неправильных вводов.

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