2016-12-01 37 views
2

我在VB6一个代码,显示来自一个EXCEL导入图片框,在这里是代码图像显示。获得从Excel的图像的位置,并在文本框

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格式,看起来像这样。

enter image description here

基于上面的代码我可以显示从Excel图像图片框为每个对象靠近它。我的问题是有可能获得他们下面的标签?

已更新。

enter image description here

根据我使用什么格式我尝试添加一个新列下面的每个图像中称为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将显示。

回答

3

假设Shape包含在单个单元格,则可以使用:

x.TopLeftCell.Address 

与图片,它更可能是它涵盖了多个单元格,这样你就可以建立完整的Range它占据的单元格:

x.TopLeftCell.Address & ":" & x.BottomRightCell.Address 
+0

也许你的权利图像将占用不只一个单元格。我会试试这个,一旦完成就通知你:) –

+0

先生,我可以问你一个问题吗? –

+0

@ShadowFiend - 击倒自己。 – Comintern

相关问题