VB中显示EXCEL中图
我自己编写了一个程序,程序中部分代码如下:
Private Sub Command1_Click()
If Combo1.Text = "" Then
MsgBox "请输入井名", vbOKOnly, "提示信息"
Exit Sub
End If
If Combo1.Text = "Esh" Then
Call Esh
Exit Sub
End If
If Combo1.Text = "J1b" Then
Call J1b
Exit Sub
End If
If Combo1.Text = "J1s" Then
Call J1s
Exit Sub
End If
End Sub
其中的Esh、J1b、J1s函数均为在EXCEL中画图的宏过程。现在要的做的是将所画的图在VB界面中的控件内显示出来。该怎么实现呢?
[解决办法]
宏过程后在excell里面画了一张图 你要先得知这张图片的区间
VbExcell.Range("P9:R16").Select '选定excell的图片区间
VbExcell.Selection.CopyPicture '复制到剪切板
Picture1.Picture = Clipboard.GetData '黏贴到vb的Picture1
[解决办法]
不用那么麻烦
xlSheet.Shapes("Chart 1").Select '选定excell的图片
xlApp.Selection.CopyPicture '复制到剪切板
Picture1.Picture = Clipboard.GetData '粘贴到vb的Picture1
[解决办法]
要这样联合使用才有效果:
Option ExplicitDim mXlsApp As Excel.Application '应用Dim mXlsBook As Excel.Workbook '工作薄Dim mXlsSheet As Excel.Worksheet '工作表Private Sub Command1_Click() Set mXlsApp = New Excel.Application Set mXlsBook = mXlsApp.Workbooks.Open("D:\graph.xls") Set mXlsSheet = mXlsBook.Worksheets(1) mXlsSheet.Range("A2:K23").Select'图片所占区域 mXlsSheet.OLEObjects.CopyPicture '读取图片到剪贴板(OLE对象) '如果是复制图表上面两行换成下面一行: 'mXlsSheet.ChartsObject(1).Chart.CopyPicture '读取图表到剪贴板 Picture1.Picture = Clipboard.GetData '粘贴图片到图片框 Clipboard.Clear '清除剪贴板数据 mXlsBook.Close mXlsApp.Quit Set mXlsSheet = Nothing Set mXlsBook = Nothing Set mXlsApp = NothingEnd Sub
[解决办法]
我不懂VB,但是帮她调试之后,发现module是无法调用form内变量(Picture1),就是这个问题。全部移到form中即可。 我还是不知道module程序段访问Picture1最正确的方法。 请教。。。