返回列表 上一主題 發帖

一個查詢的表單,

回復 11# hong912

試試看下列程式碼
  1. Dim PicAr() As Picture '圖片陣列
  2. Private Const fs = "E:\temp.jpg" '暫存圖片目錄位置
  3. Private Const r = 4 '資料起始列號
  4. Private Sub ComboBox1_Change() '選擇編號事件
  5. Dim k%, i%
  6. With ComboBox1
  7. k = .ListIndex '下拉選單選取位置
  8. For i = 1 To 11
  9.    Controls("TextBox" & i).Text = IIf(i = 11, .List(k, i) & .List(k, i + 1), .List(k, i)) '文字方塊寫入
  10. Next
  11. End With
  12. PicAr(k).CopyPicture '複製圖片
  13. With Sheet1.ChartObjects.Add(, , PicAr(k).Width, PicAr(k).Height) '新增圖表
  14. .Chart.Paste '貼上圖片
  15. .Chart.Export fs '以圖表匯成圖片
  16. Image1.Picture = LoadPicture(fs) '載入圖片
  17. .Delete '刪除圖表
  18. End With
  19. End Sub


  20. Private Sub UserForm_Initialize() '表單初始化
  21. Dim Pic As Picture
  22. With Sheet1
  23. ReDim PicAr(.Pictures.Count)
  24. For Each Pic In .Pictures '將每個圖片置入陣列
  25.   Set PicAr(Pic.TopLeftCell.Row - r) = Pic
  26. Next
  27. ComboBox1.List = .Range("A4", .[A4].End(xlDown).Offset(, 12)).Value '下拉清單內容
  28. End With
  29. Image1.PictureSizeMode = fmPictureSizeModeStretch '圖片載入的型態
  30. End Sub

  31. Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) '關閉表單
  32. If Dir(fs) <> "" Then Kill fs '刪除暫存圖片檔案
  33. End Sub
複製代碼
表單圖片查詢.rar (1.28 MB)
學海無涯_不恥下問

TOP

回復 18# hong912

請上傳無法讀取的問題檔案
應該只要是能插入到工作表中的圖片均可讀取才對
學海無涯_不恥下問

TOP

回復 21# 周大偉
沒注意到2003以外版本,圖表新增時,不可忽略left與top引數
With Sheet1.ChartObjects.Add(1, 1, PicAr(k).Width, PicAr(k).Height)
學海無涯_不恥下問

TOP

回復 23# 周大偉


    可能是
Private Const fs = "E:\temp.jpg" '暫存圖片目錄位置
這個目錄位置不存在
學海無涯_不恥下問

TOP

回復 26# 317


    可能是電腦中沒有E槽分割吧
學海無涯_不恥下問

TOP

回復 29# 周大偉
  1. Dim PicAr() As Picture '圖片陣列
  2. Dim fs$
  3. Private Const r = 4 '資料起始列號

  4. Private Sub ComboBox1_Change() '選擇編號事件

  5. Dim k%, i%

  6. With ComboBox1

  7. k = .ListIndex '下拉選單選取位置

  8. For i = 1 To 11

  9.    Controls("TextBox" & i).Text = IIf(i = 11, .List(k, i) & .List(k, i + 1), .List(k, i)) '文字方塊寫入

  10. Next

  11. End With

  12. PicAr(k).CopyPicture '複製圖片

  13. With Sheet1.ChartObjects.Add(1, 1, PicAr(k).Width, PicAr(k).Height) '新增圖表

  14. .Chart.Paste '貼上圖片

  15. .Chart.Export fs '以圖表匯成圖片

  16. Image1.Picture = LoadPicture(fs) '載入圖片

  17. .Delete '刪除圖表

  18. End With

  19. End Sub

  20. Private Sub UserForm_Initialize() '表單初始化
  21.     Dim Pic As Picture
  22.     fs = CurDir & "\temp.jpg"  '*** 這裡修改為當下的目錄 ( CurDir )為暫存圖片目錄位置 ***
  23.     With Sheet1
  24.         ReDim PicAr(.Pictures.Count)
  25.         For Each Pic In .Pictures '將每個圖片置入陣列
  26.             Set PicAr(Pic.TopLeftCell.Row - r) = Pic
  27.         Next
  28.         ComboBox1.List = .Range("A4", .[A4].End(xlDown).Offset(, 12)).Value '下拉清單內容
  29.     End With
  30.     Image1.PictureSizeMode = fmPictureSizeModeStretch '圖片載入的型態
  31. End Sub

  32. Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) '關閉表單

  33. If Dir(fs) <> "" Then Kill fs '刪除暫存圖片檔案

  34. End Sub
複製代碼
學海無涯_不恥下問

TOP

        靜思自在 : 做好事不能少我一人,做壞事不能多我一人。
返回列表 上一主題