从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