Foxtable(狐表)用户栏目专家坐堂 → [求助]操作excel同时生成多个图表


  共有2256人关注过本帖树形打印复制链接

主题:[求助]操作excel同时生成多个图表

帅哥哟,离线,有人找我吗?
xmj0331
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:21 积分:210 威望:0 精华:0 注册:2024/5/8 20:16:00
[求助]操作excel同时生成多个图表  发帖心情 Post By:2024/5/30 15:21:00 [显示全部帖子]

想要每个表生成一个图表,遍历各个表的时候失败,只有第一个成功怎么办
Dim a As Integer = CInt(e.Form.Controls("TextBox1").text)
Dim app As New MSExcel.Application()
app.Visible = True
Dim book As MSExcel.Workbook = app.Workbooks.Open("D:\临沂分段.xls")      '指定excel文件
For j As Integer = a To 1 Step -1
    Dim ws As MSExcel.Worksheet = book.Sheets("临沂第" & j & "段")      '指定工作表
    'Dim ws As MSExcel.Worksheet = book.Sheets(j)
    If ws.ChartObjects.count > 0 Then
        ws.ChartObjects.Delete '删除工作表上已经存在的图表
    End If
    Dim Rg1 As MSExcel.Range = ws.Range("C3:C120")
    Dim Rg2 As MSExcel.Range = ws.Range("D1:E120")
    Dim Co As MSExcel.ChartObject = ws.ChartObjects.Add(100,30,400,250)   '创建图表对象
    Dim Cht As MSExcel.Chart = Co.Chart
    Dim s As MSExcel.Series
    With Cht
        .ChartType = MSExcel.XlChartType.xlLine
        .SetSourceData(Rg2)
        s = Cht.SeriesCollection(1)
        s.XValues = Rg1
    End With
    With Cht.Axes(MSExcel.XlAxisType.xlCategory)   '获取X轴
        .HasTitle = True
        .AxisTitle.Text = "手部距离"   '添加标题
        .HasMajorGridlines = True  '显示主要网格线
        '.HasMinorGridlines = True  '显示次要网格线
        .MinimumScale = 100
        .MaximumScale = 500
        .MinorUnit = 1
        .MajorUnit = 10
        .CrossesAt = 400
        .ReversePlotOrder = False
    End With
    With Cht.Axes(MSExcel.XlAxisType.xlValue) '获取Y轴
        .HasTitle = True
        .AxisTitle.Text = "埋深(m)"   '添加标题
        .HasMajorGridlines = True'显示只要网格线
        .HasMinorGridlines = True'显示次要网格线
    End With
Next j


链接:https://pan.baidu.com/s/1hfs1MZt3cIKS6MBGfM4V6Q 
提取码:nkxh

[此贴子已经被作者于2024/5/30 17:38:03编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
xmj0331
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:21 积分:210 威望:0 精华:0 注册:2024/5/8 20:16:00
  发帖心情 Post By:2024/5/30 15:23:00 [显示全部帖子]

另外想加一个值为常数的序列要怎么操作,必须先在表中插入列吗?

 回到顶部
帅哥哟,离线,有人找我吗?
xmj0331
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:21 积分:210 威望:0 精华:0 注册:2024/5/8 20:16:00
  发帖心情 Post By:2024/5/30 15:32:00 [显示全部帖子]

这个语句就一个图也不能生成是怎么回事呢?Dim ws As MSExcel.Worksheet = book.Sheets(j)


未指定的错误 (异常来自 HRESULT:0x80004005 (E_FAIL))

 回到顶部
帅哥哟,离线,有人找我吗?
xmj0331
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:21 积分:210 威望:0 精华:0 注册:2024/5/8 20:16:00
  发帖心情 Post By:2024/5/30 16:05:00 [显示全部帖子]

删除那一段还是只有一个生成图表了啊

 回到顶部
帅哥哟,离线,有人找我吗?
xmj0331
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:21 积分:210 威望:0 精华:0 注册:2024/5/8 20:16:00
  发帖心情 Post By:2024/5/30 17:04:00 [显示全部帖子]

附件请查收

 回到顶部
帅哥哟,离线,有人找我吗?
xmj0331
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:21 积分:210 威望:0 精华:0 注册:2024/5/8 20:16:00
  发帖心情 Post By:2024/5/30 17:40:00 [显示全部帖子]

实例已上传
链接:https://pan.baidu.com/s/19vIzu9lu7S0PudibN9oxpA 
提取码:1333

 回到顶部
帅哥哟,离线,有人找我吗?
xmj0331
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:21 积分:210 威望:0 精华:0 注册:2024/5/8 20:16:00
  发帖心情 Post By:2024/5/31 9:37:00 [显示全部帖子]

有遍历多个工作表的成功的范例吗?不明白XLS.Book, XLS.Sheet里可以用的语法到MSExcel.WorkBook ,MSExcel.WorkSheet 就用不了


 回到顶部
帅哥哟,离线,有人找我吗?
xmj0331
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:21 积分:210 威望:0 精华:0 注册:2024/5/8 20:16:00
  发帖心情 Post By:2024/5/31 11:22:00 [显示全部帖子]

问题已解决,是这段后面几行代码出了问题
With Cht.Axes(MSExcel.XlAxisType.xlCategory)   '获取X轴
        .HasTitle = True
        .AxisTitle.Text = "手部距离"   '添加标题
        .HasMajorGridlines = True  '显示主要网格线
        '.HasMinorGridlines = True  '显示次要网格线
        .MinimumScale = 100
        .MaximumScale = 500
        .MinorUnit = 1
        .MajorUnit = 10
        .CrossesAt = 400
        .ReversePlotOrder = False
    End With

 回到顶部