Board logo

標題: [發問] 剛弄好的程式 請問能否簡化 [打印本頁]

作者: mark15jill    時間: 2011-4-8 15:51     標題: 剛弄好的程式 請問能否簡化

參考 論壇內的一些教學文 所弄出的
只是 圖片檔案多達上千筆 如果用這個方法 會瘋掉
請問有人能幫我簡化嗎?
初始條件
sheet1 名稱為 data_picture
欄位 a2 ~ a7為 序列號 (1~6)
欄位 b2 ~ b7 為人名
欄位 e1 ~ h6 為圖片顯示區域

  

Private Sub ComboBox1_Change()

If ComboBox1.Value = 1 Then
  Image1.Picture = LoadPicture("C:\aaa\-01.jpg")
End If
  Dim u As Range
  Set u = Worksheets("data_picture").Range("e1")
If ComboBox1.Text = 1 Then
  Call ActiveSheet.Shapes.AddPicture("C:\aaa\-01.JPG", msoFalse, msoTrue, u.Left, u.Top, 200, 200)
Else
If ComboBox1.Text = 2 Then
  Call ActiveSheet.Shapes.AddPicture("C:\aaa\-02.JPG", msoFalse, msoTrue, u.Left, u.Top, 200, 200)
End If
End If

End Sub
作者: kimbal    時間: 2011-4-10 21:14

問題是要看你的圖名和選項有什麼關系
以下的是,如果選上的是1
圖名自動找"C:\aaa\-01.jpg"
如果選上的是2
圖名自動找"C:\aaa\-02.jpg"
...
如果選上的是99
圖名自動找"C:\aaa\-99.jpg"


Private Sub ComboBox1_Change()
    Dim strImageLocation
    strImageLocation = "C:\aaa\-" & Format(Val(ComboBox1.Text), 0) & ".jpg"
    Image1.Picture = LoadPicture(strImageLocation)
    Dim u As Range
    Set u = Worksheets("data_picture").Range("e1")
    Call ActiveSheet.Shapes.AddPicture(strImageLocation, msoFalse, msoTrue, u.Left, u.Top, 200, 200)

End Sub
作者: mark15jill    時間: 2011-4-12 08:33

大概看懂一些.. 謝謝您
再請教 這串的意思是??
  strImageLocation = "C:\aaa\-" & Format(Val(ComboBox1.Text), 0) & ".jpg"

還有 如果想要設計一個label  的框框
將其資料列顯示出來 還需要增加什麼??
初始條件
sheet1 名稱為 data_picture
欄位 a2 ~ a7 為 序列號 (1~6)
欄位 b2 ~ b7 為 人名
欄位 c2 ~  d2 為 資料列
欄位 c3 ~  d3 為 資料列
欄位 e1 ~ h6 為 圖片顯示區域
作者: mark15jill    時間: 2011-4-18 11:17

這幾天試驗連結的部份
kimbal  您所發的方法 小弟有試驗過
但是 會顯示資料型態錯誤
不曉得是 combobox這邊的引用設定錯誤還是怎樣
顯示是可以顯示 但是 卻變成執行程式時 會造成型態錯誤而中斷
不曉得說該怎設定比較恰當




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)