从Excel中获取图像的位置并将其显示在文本框中
我有一个在VB6中的代码,显示来自excel的图像到picturebox中,这里是代码。
Dim appExcel As Excel.Application Dim xlsBook As Excel.Workbook Dim xlsSheet As Excel.Worksheet Dim img As Image Set appExcel = New Excel.Application Set xlsBook = appExcel.Workbooks.Open(Text1.Text) Set xlsSheet = xlsBook.Worksheets("Sheet1") Dim x As Excel.Shape For Each x In xlsSheet.Shapes x.Copy Picture1.Picture = Clipboard.GetData(vbCFBitmap) Text2.Text = x.Name Next
在图片框附近,我也有一个文本框,我的目标是显示图像的单元格位置。 我怎样才能做到这一点?
这是更新。
我有一个像这样的excel格式。
基于上面的代码,我可以显示图像从excel到picturebox为每个对象附近。 我的问题是有可能得到他们下面的标签?
更新。
基于我正在使用什么格式,我尝试在每个图像中添加一个名为Image Name
下面的新列,并把名称叫IMAGE 1
…直到IMAGE 9
因为我现在有9个图像,这里是我的代码。
Dim appExcel As Excel.Application Dim xlsBook As Excel.Workbook Dim xlsSheet As Excel.Worksheet Dim img As Image Dim rowlocation As Integer Dim columnlocation As Integer Dim celladdress As String Set appExcel = New Excel.Application Set xlsBook = appExcel.Workbooks.Open(Text1.Text) Set xlsSheet = xlsBook.Worksheets("Sheet1") Dim x As Excel.Shape For Each x In xlsSheet.Shapes x.Copy Picture1.Picture = Clipboard.GetData(vbCFBitmap) Text2.Text = x.Name rowlocation = x.TopLeftCell.Row columnlocation = x.TopLeftCell.Column celladdress = Cells(rowlocation + 3, columnlocation + 1).Address(RowAbsolute:=False, ColumnAbsolute:=False) MsgBox ActiveSheet.Range(celladdress) Next
会发生什么情况是,当图像被选中时,正确的Image Name
不会出现例如在Image 2
而不是图像名称单词Image Name
将显示。
假定Shape
包含在一个单元格中,您可以使用:
x.TopLeftCell.Address
有了图片,它更有可能覆盖多个单元格,因此您可以构build它占据的完整单元格Range
:
x.TopLeftCell.Address & ":" & x.BottomRightCell.Address