Microsoft Excel VBA绘图宏

时间:2019-01-25 20:43:13

标签: excel vba

使用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 :(得分:1)

如果您希望将当前的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

答案 1 :(得分:0)

如果我正确理解:

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等。全部使用输入框。当然,如果您需要编辑大量变量,则模态用户窗体将更易于维护,并且是避免错误输入的正确方法。