返回列表 上一主題 發帖

[發問] 剛弄好的程式 請問能否簡化

[發問] 剛弄好的程式 請問能否簡化

參考 論壇內的一些教學文 所弄出的
只是 圖片檔案多達上千筆 如果用這個方法 會瘋掉
請問有人能幫我簡化嗎?
初始條件
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

問題是要看你的圖名和選項有什麼關系
以下的是,如果選上的是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
懂得發問,答案就會在其中

今日の一秒は  明日にない
http://kimbalko-chi.blogspot.com
http://kimbalko.blogspot.com

TOP

大概看懂一些.. 謝謝您
再請教 這串的意思是??
  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 為 圖片顯示區域

TOP

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

TOP

        靜思自在 : 【時間無法遮擋】怕時間消逝,花了許多心血,想盡各式方法要遮擋時間,結果是:浪費了更多時間,且一無所成!
返回列表 上一主題