vba在Excel指定位置生成图表

手动生成效果如下图

 代码控制生成

 代码如下

Sub 指定位置生成图表例程()
    Set weizhi = Range("E3:J18") '生成图表的位置
    Set obChart = ActiveSheet.ChartObjects.Add(0, 0, 0, 0)
    
    obChart.Top = weizhi.Top
    obChart.Left = weizhi.Left
    obChart.Width = weizhi.Width
    obChart.Height = weizhi.Height
    
    obChart.Chart.ChartType = xlXYScatter 'xy图
    obChart.Chart.SeriesCollection.NewSeries
    obChart.Chart.SeriesCollection(1).Name = "=Sheet1!$A$2"
    obChart.Chart.SeriesCollection(1).XValues = "=Sheet1!$B$2:$B$7"
    obChart.Chart.SeriesCollection(1).Values = "=Sheet1!$C$2:$C$7"
        
End Sub

其他参考代码(使用函数调用)


Sub 指定位置生成图表例程2(ByVal str As String)
    'Set weizhi = Range("E3:J18") '生成图表的位置
    Set weizhi = Range(str) '生成图表的位置
    
    Set obChart = ActiveSheet.ChartObjects.Add(0, 0, 0, 0)
    
    obChart.Top = weizhi.Top
    obChart.Left = weizhi.Left
    obChart.Width = weizhi.Width
    obChart.Height = weizhi.Height
    
    obChart.Chart.ChartType = xlXYScatter 'xy图
    obChart.Chart.SeriesCollection.NewSeries
    obChart.Chart.SeriesCollection(1).Name = "=Sheet1!$A$2"
    obChart.Chart.SeriesCollection(1).XValues = "=Sheet1!$B$2:$B$7"
    obChart.Chart.SeriesCollection(1).Values = "=Sheet1!$C$2:$C$7"
        
End Sub

Sub RangeInput()
    Dim rg As Range
    Set rg = Application.InputBox("请选择单元格区域", "选取提示", , , , , , 8)
    'MsgBox rg.Parent.Name & "!" & rg.Address
    Call 指定位置生成图表例程2(rg.Parent.Name & "!" & rg.Address)
End Sub

此例中由用户选择输入区域光影 inputbox函数的使用参考

Application.InputBox 方法 (Excel) | Microsoft Learnhttps://learn.microsoft.com/zh-cn/office/vba/api/excel.application.inputbox上例中最后一个参数(参数8)是关键参数决定了输入的类型,当然可是明确指出确定的类型。

Worksheets("Sheet1").Activate 
Set myCell = Application.InputBox( _ 
    prompt:="Select a cell", Type:=8)

 直接使用 type:=8就可以不用输入太多i的逗号

type的详细解释

 

特此记录

anlog

2023年6月3日

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Excel批量生成图表VBA步骤如下: 1. 首先,在Excel工作簿中打开Visual Basic for Applications(VBA)编辑器。可以通过按下“Alt + F11”快捷键来打开。 2. 在VBA编辑器中,选择“插入”->“模块”选项,以创建一个新的VBA模块。 3. 在新模块中编写VBA代码来生成图表。首先,确定要生成图表的数据范围,并使用`Range`对象将其定义为变量。例如,`Dim dataRange As Range: Set dataRange = Range("A1:B10")`。 4. 创建一个图表对象并将其定义为变量。可以使用`ActiveSheet.ChartObjects.Add`方法来添加新图表对象。例如,`Dim chartObj As ChartObject: Set chartObj = ActiveSheet.ChartObjects.Add(Left:=100, Width:=400, Top:=100, Height:=300)`。 5. 将图表对象与数据范围关联起来。使用`chartObj.Chart.SetSourceData`方法将数据范围指定图表的源数据。例如,`chartObj.Chart.SetSourceData Source:=dataRange`。 6. 根据需要,可以设置图表的类型、样式和其他属性。可以使用`chartObj.Chart.ChartType`和`chartObj.Chart.Legend`等属性来设置图表类型和图例样式。 7. 最后,使用`chartObj.Activate`方法激活图表,并将其显示在Excel工作表中。 8. 完成VBA代码编写后,可以点击VBA编辑器中的“运行”按钮或按下“F5”键来执行代码。 通过以上步骤,在Excel中使用VBA可以批量生成图表。可以对代码进行适当的修改和调整,以满足特定图表生成的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值