|
本帖最后由 aoe1981 于 2014-11-20 15:09 编辑
大侠,这是我做的,您审阅:
图如下:
代码如下:
- Option Explicit
- Private Sub cmdClear_Click()
- Range("a2:b" & Rows.Count) = ""
- End Sub
- Private Sub cmdDrawCurve_Click()
- Dim shp As Shape, i&, m&, n&, zbx#, zby#, zb()
- m = 0
- With Sheet1.Shapes("Chart 1").Chart
- .Axes(xlCategory).MinimumScale = 0
- .Axes(xlValue).MinimumScale = 0
- .Axes(xlValue).ReversePlotOrder = True
- .Axes(xlCategory).MaximumScale = .PlotArea.Width
- .Axes(xlValue).MaximumScale = .PlotArea.Height
- zbx = .PlotArea.Left + Sheet1.Shapes("Chart 1").Left + 3
- zby = .PlotArea.Top + Sheet1.Shapes("Chart 1").Top + 3
- End With
- For Each shp In Sheet1.Shapes
- If shp.Type = msoFreeform Then
- n = shp.Nodes.Count
- ReDim Preserve zb(1 To 2, 1 To n + m)
- For i = 1 To n
- zb(1, i + m) = shp.Nodes(i).Points(1, 1) - zbx
- zb(2, i + m) = shp.Nodes(i).Points(1, 2) - zby
- Next i
- m = m + n + 1
- End If
- Next shp
- Range("a2").Resize(m - 1, 2) = WorksheetFunction.Transpose(zb)
- End Sub
复制代码 附件如下:
我的文件格式是2003,但是在2010中编辑,在2003中运行效果目前未测试,2010中正常。
在2003中录制、测试了半天,传一个2003版的:
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?免费注册
x
|