ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1748|回复: 9

[求助] 从Microsoft Graph中提取数据

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-11-24 12:14 | 显示全部楼层 |阅读模式
见附件中Excel表,内含有一个Microsoft Graph对象图表,双击后可以显示图表的源数据。
因为想对源数据进行一些分析处理,如何使用VBA提取源数据?谢谢!

TCSY-SNJ13--1329.zip

443.32 KB, 下载次数: 26

TA的精华主题

TA的得分主题

发表于 2014-11-24 12:24 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
太诡异了,在Excel里OLE一个Graph对象~

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-11-24 12:30 | 显示全部楼层
lee1892 发表于 2014-11-24 12:24
太诡异了,在Excel里OLE一个Graph对象~

这个是我们检测设备制造商搞进去的。其实还有最原始的txt原始数据,但没有经过预处理,数据预处理太麻烦。我想直接调用这里面处理过的数据

点评

你还不如对付原始数据呢  发表于 2014-11-24 13:15

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-11-24 14:17 | 显示全部楼层
vegas-chang 发表于 2014-11-24 12:30
这个是我们检测设备制造商搞进去的。其实还有最原始的txt原始数据,但没有经过预处理,数据预处理太麻烦。 ...

原始数据处理比较麻烦了。想取个巧,直接调用不更好么

TA的精华主题

TA的得分主题

发表于 2014-11-25 09:31 | 显示全部楼层
本帖最后由 lee1892 于 2014-11-25 10:15 编辑

貌似Graph对象的数据确定行列的最大值没啥好办法呀
  1. Sub GetGraphData()
  2.     Dim aData, i&, j&, nRows&, nCols&
  3.     With Worksheets(1).OLEObjects(1).Object.Application.DataSheet
  4.         Do
  5.             If IsEmpty(.Cells(nRows + 1, 1)) Then Exit Do
  6.             nRows = nRows + 1
  7.         Loop
  8.         Do
  9.             If IsEmpty(.Cells(1, nCols + 1)) Then Exit Do
  10.             nCols = nCols + 1
  11.         Loop
  12.         ReDim aData(1 To nCols, 1 To nRows)
  13.         For i = 1 To nRows
  14.             For j = 1 To nCols
  15.                 If .Cells(i, j) <> "NaN" Then aData(j, i) = .Cells(i, j)
  16.             Next
  17.         Next
  18.     End With
  19.     Worksheets(1).Range("A24").Resize(nCols, nRows) = aData
  20.     Erase aData
  21. End Sub
复制代码
德语的系统?

TCSY-SNJ13--1329.rar

422.74 KB, 下载次数: 4

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-11-25 11:54 | 显示全部楼层
lee1892 发表于 2014-11-25 09:31
貌似Graph对象的数据确定行列的最大值没啥好办法呀德语的系统?

设备开发商是德国的。

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-11-25 11:57 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
lee1892 发表于 2014-11-25 09:31
貌似Graph对象的数据确定行列的最大值没啥好办法呀德语的系统?

谢谢!好好琢磨琢磨

TA的精华主题

TA的得分主题

发表于 2023-1-20 12:37 | 显示全部楼层
  1. Sub DEL()
  2.    Dim Sht As Worksheet, Sht1 As DataTable
  3.        Set Sht = Worksheets(1)
  4.        Debug.Print Sht.Name
  5.       
  6.    Dim Ole As OLEObject
  7.        Set Ole = Sht.OLEObjects(1)
  8.        Sht.OLEObjects(1).Verb
  9.        Debug.Print Ole.Name
  10.        With Worksheets(1).OLEObjects(1).Object.Application.DataSheet
  11.             .Cells(1, 1) = 1111111
  12.        End With
  13.        Sht.OLEObjects(1).Object.Application.DataSheet.Cells(2, 1) = 777777
  14.        Stop
  15.        Stop
  16.       
  17. End Sub
复制代码


有点眉目,离目标越来越近了。
       With Worksheets(1).OLEObjects(1).Object.Application.DataSheet
            .Cells(1, 1) = 1111111
       End With
       Sht.OLEObjects(1).Object.Application.DataSheet.Cells(2, 1) = 777777

TA的精华主题

TA的得分主题

发表于 2023-1-21 07:31 | 显示全部楼层
ppt方法


  1. Sub L1()
  2.     Dim Pres As Presentation
  3.     Dim Sld As Slide
  4.     Dim Shp As Shape
  5.     Dim a
  6.     Dim ShpRng As ShapeRange
  7.         Set Pres = Application.ActivePresentation
  8.         
  9.         For Each Sld In Pres.Slides
  10.               Debug.Print Sld.Name
  11.               For Each Shp In Sld.Shapes
  12.                     Debug.Print Shp.Name, Shp.OLEFormat.Object.Application.Name
  13.                     Shp.Select msoCTrue
  14.                     Shp.OLEFormat.Object.Application.DataSheet.Cells(2, 2) = 2
  15.               Next Shp
  16.         Next Sld
  17. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2023-1-21 18:41 | 显示全部楼层
  1. Sub L1()

  2.     Dim oPresent As Presentation
  3.     Dim Sld As Slide
  4.     Dim Shp As Shape
  5.     ''
  6.     Dim Grp As Graph.Chart
  7.     Dim gSht As Graph.DataSheet
  8.     Dim gRng As Graph.Range, gRng2 As Graph.Range
  9.     ''
  10.     Dim Obj 'As CellRange
  11.     Dim Sht As Worksheet
  12.     Dim ShpRng As ShapeRange
  13.     Dim Path, xlPathName, xlName As String
  14.    
  15.     Dim xlWk As Excel.Workbook
  16.     Dim Rng As Excel.Range, Rng1 As Excel.Range, Rng2 As Excel.Range
  17.    
  18.    
  19.         xlName = "\del.xls"
  20.         Set oPresent = Application.ActivePresentation
  21.         Path = oPresent.Application.ActivePresentation.Path
  22.         
  23.         Set xlWk = PptSetWk("\中国东西南北城市.xls")
  24.   For Each Sht In xlWk.Sheets
  25.        Debug.Print Sht.Name
  26.   Next Sht
  27.         Set Sht = xlWk.Sheets("图表数据")
  28.         Debug.Print Sht.Cells(1, 1).Formula
  29.         Debug.Print Sht.Cells(1, 1).Formula, Sht.Cells(2, 1).Formula, Sht.Cells(1, 2).Formula
  30.   Stop
  31.   Stop
  32.         For Each Sld In oPresent.Slides
  33.               For Each Shp In Sld.Shapes
  34.                     Set Grp = Shp.OLEFormat.Object
  35.                     Debug.Print Shp.Name, DataSheetDataSheet; Shp.OLEFormat.Object.Application.Name
  36.                     With Grp
  37.                          Debug.Print .Name, .Application.Name,
  38.                          Debug.Print .ChartType
  39.                     End With
  40.                     Set gSht = Shp.OLEFormat.Object.Application.DataSheet
  41.                     Set gRng2 = gSht.Cells(2, 2)
  42.                     Stop
  43.               Next Shp
  44.         Next Sld
  45. End Sub
复制代码
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-19 16:28 , Processed in 0.054267 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表