Board logo

標題: [發問] 如何於輸入貨號後自動顯示商品圖片?(已解決) [打印本頁]

作者: yangtest    時間: 2011-11-20 09:17     標題: 如何於輸入貨號後自動顯示商品圖片?(已解決)

本帖最後由 yangtest 於 2011-11-21 09:25 編輯

如何於輸入貨號後自動顯示商品圖片?

[於輸入貨號後自動顯示商品資料及圖片,功能說明如附加檔案。
由於小弟對『VBA』不太了解,懇請各位先進幫忙,謝謝!!

[attach]8580[/attach]
作者: oobird    時間: 2011-11-20 09:54

輸入貨號取相片
[attach]8582[/attach]
作者: GBKEE    時間: 2011-11-20 10:02

本帖最後由 GBKEE 於 2011-11-28 10:19 編輯

回復 1# yangtest
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.     If Target.Address = [K4].Address Then 呼叫相片
  3.     Target.Select
  4. End Sub
  5. Private Sub 呼叫相片()
  6.        Dim 資料夾 As String, 網頁照片 As String
  7.        資料夾 = "d:\大賣場\"   '須修資料夾
  8.        網頁照片 = "http://us.123rf.com/400wm/400/400/janaka/janaka0808/janaka080800490/3398188-3d-question-mark-icon-3d-art.jpg"
  9.        On Error Resume Next
  10.         Shapes("Rectangle 4").Fill.UserPicture 資料夾 & [K4] & ".jpg"
  11.         If Err.Number <> 0 Then Shapes("Rectangle 4").Fill.UserPicture 網頁照片
  12. End Sub
複製代碼

作者: yangtest    時間: 2011-11-20 11:35

回復 3# GBKEE

感謝 GBKEE  前輩提供另一種值得參考的做法
作者: yangtest    時間: 2011-11-20 11:52

回復 2# oobird


感謝 oobird (超級版主)解決了我的難題,
測試後還有一個小問題,請再幫忙修改,謝謝 !!
問題說明:
不同貨號會使用到相同名稱的相片,
如貨號 A01003 與 A01004 均使用 A01003.JPG 的相片
當貨號輸入 A01003 時,可正常顯示 A01003.JPG 的相片
但當貨號輸入 A01004 時,因為找不到 A01004.JPG 的相片而出錯!
每一筆貨號所對應的正確相片名稱為【叫相片】工作表的【E12】儲存格,
請以此儲存格的內容做為相片檔名來讀取。
作者: oobird    時間: 2011-11-20 12:52

  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. If Target.Address <> "$K$4" Then Exit Sub
  3. Image1.Picture = LoadPicture(ThisWorkbook.Path & "\JPG\" & [e12])
  4. End Sub
複製代碼

作者: yangtest    時間: 2011-11-20 14:41

回復 6# oobird


    再次感謝 oobird (超級版主),終於解決了我的難題  !!!!
作者: dafa    時間: 2011-11-26 13:58

回復 6# oobird


    請問O大
如果此範例輸入不存在的貨號會出現錯誤要如何解決
我試了好久都試不出來
作者: GBKEE    時間: 2011-11-27 10:02

回復 8# dafa
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. If Target.Address <> "$K$4" Then Exit Sub
  3. On Error Resume Next
  4. Image1.Picture = LoadPicture(ThisWorkbook.Path & "\JPG\" & [e12])
  5. If Err <> 0 Then Image1.Picture = LoadPicture
  6. End Sub
複製代碼

作者: jesscc    時間: 2011-11-27 23:13

本帖最後由 jesscc 於 2011-11-27 23:18 編輯

回復 9# GBKEE
   
G大您好,看到這個範例,我覺得蠻好用的,因此下載來測試了一下,我發現如果所搜尋的圖片名稱中含有特殊符號,如[attach]8646[/attach](表示直徑的符號),這樣就會搜尋不到,並且出現錯誤,該如何解決這種問題呢?
作者: dafa    時間: 2011-11-27 23:14

回復 9# GBKEE


    感謝G大的回覆
我有自己嘗試寫
我寫的是這樣
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$L$3" Then
Exit Sub
ElseIf IsError(Cells(11, 6)) = True Then
MsgBox "尚未建此料號"
Exit Sub
Else
Image1.Picture = LoadPicture(ThisWorkbook.Path & "\JPG\" & [F11])
End If
End Sub
不過G大的好像比較專業
繼續研究G大的寫法
作者: GBKEE    時間: 2011-11-28 07:37

本帖最後由 GBKEE 於 2011-11-28 07:38 編輯

回復 11# dafa
你的也不錯的

回復 10# jesscc
這特殊字元 我沒辦法
作者: yangtest    時間: 2011-11-28 09:04

本帖最後由 yangtest 於 2011-11-28 11:03 編輯

回復 9# GBKEE
按照 GBKEE 的語法,已經成功的解決『輸入不存在貨號會出現錯誤』的問題,
我做了一張『貨號錯誤!請重新輸入』的訊息圖片,
指定檔名為 00.JPG ,並放在 \JPG\ 目錄下
我把  If Err <> 0 Then Image1.Picture = LoadPicture       改為
If Err <> 0 Then Image1.Picture = LoadPicture(ThisWorkbook.Path & "\JPG\00.JPG" )
於輸入不存在貨號時會出現『貨號錯誤!請重新輸入』的訊息圖片,如下圖:
用來提醒操作者!!

[attach]8649[/attach]
作者: GBKEE    時間: 2011-11-28 10:42

回復 13# yangtest
因 Image1.Picture = LoadPicture(  網頁照片 )程式碼, 會有錯誤. 快取圖案 : 色彩線條 指定圖片  可抓取網路上的圖片
固 3# 用  If Err.Number <> 0 Then Shapes("Rectangle 4").Fill.UserPicture 網頁照片 , 來處裡錯誤.
作者: yangtest    時間: 2011-11-28 10:46

回復 14# GBKEE
學習了,謝謝指導!
作者: jami520    時間: 2011-12-13 13:59

謝謝分享,很實用的範例
作者: lucasliu    時間: 2012-4-30 11:12

回復 1# yangtest


    正要找此功能謝謝
作者: michigan    時間: 2012-5-17 18:38

回復 1# yangtest


    不錯的帖子:lol
作者: egg0308    時間: 2012-8-21 15:10

公司剛好需要這個,這個程式不錯,可以防止做錯或拿錯東西.謝謝分享.




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