返回列表 上一主題 發帖

一個查詢的表單,

回復 15# GBKEE
GBKEE版大,
謝謝大大再度提示, 的確最初沒為意最下列儲存格有二列是沒有圖片, 多謝大大提示, 感恩..謝謝!!
hong912

TOP

回復 11# hong912
9# 的程式碼, 是依據你7# 附檔修改的,我執行時並沒有你提到的錯誤
請查看你檔案中的圖片是否有移動,離開7# 附檔的位置.

TOP

回復 12# Hsieh

可以運行了, 謝謝大大
hong912

TOP

回復 12# Hsieh

Hsieh版大, 早晨
謝謝回應, 一早起床, 看到回應, 的確很高興, 但趕開工, 時間迫切, 要到夜晚才能試用, 感謝回應, 祝願快樂, 謝謝!!

TOP

回復 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

回復 9# GBKEE
GBKEE版大, 好  先行謝過版大回應, 但出現下列問題,
程式貼到檔案工作上, 從下拉選擇編號後,      (  For Each Sp In .Pictures             '尋找N欄中的圖片,複製之 ), 這行顯示黃色,   到底問題在於哪裡, 希望大大能協助, 謝謝

    Private Sub ComboBox1_Change()

    Dim Sp As Picture, I As Integer, R As Integer

    If ComboBox1.ListIndex > -1 Then                    '選擇 ComboBox1的內容

        R = ComboBox1.List(ComboBox1.ListIndex, 1)      'ComboBox第2欄 : 列號 1....

        For I = 0 To UBound(Ar)

            If I <> UBound(Ar) Then

                Ar(I).Text = Sh.Cells(編號 + R, I + 2)  '列號 : 編號 + R

            Else

                '2, 在第11個TextBox11物件中, 可否做到把sheet1第11欄及12欄合拼顯示,如123aaa

                 Ar(I).Text = Sh.Cells(編號 + R, I + 2) & Sh.Cells(編號 + R, I + 3)

             End If

        Next

    End If

    With Sh

        For Each Sp In .Pictures             '尋找N欄中的圖片,複製之

            If Sp.TopLeftCell.Address(0, 0) = "N" & 編號 + R Then Sp.Copy: Exit For

        Next

        '利用圖表匯出存檔

        With .ChartObjects.Add(1, 1, Sp.Width, Sp.Height)           '新增 圖表

             .Chart.Paste                                           '貼上 圖片

             .Chart.Export Filename:=ThePicture                     '匯出 圖片

             .Delete                                                '刪除 圖表

        End With

    End With

    Image1.Picture = LoadPicture(ThePicture)                         'Image1 指定圖片

End Sub
hong912

TOP

回復 9# GBKEE
感謝GBKEE版大再度回應, 待放工回家才能試用, 但覺得即時回應及說感謝, 是必須, 因這是一種禮貌, 再說聲感謝, 謝謝!!
hong912

TOP

回復 7# hong912
ComboBox1 增加一欄內容
  1. Private Sub UserForm_Initialize()          '表單初始化的預設事件程序
  2.     Dim I As Integer, e As Range
  3.     Set Sh = Sheets("Sheet1")              '資料庫的工作表
  4.     With Sh
  5.         For Each e In .Range("a4", .[a4].End(xlDown))  '指定 ComboBox1的內容
  6.             With ComboBox1                             'ComboBox1.ColumnCount=1 系統預設 顯示1欄資料
  7.                ' .ColumnCount=2                        '可顯示2欄資料
  8.                 .AddItem
  9.                 'AddItem 方法 在一個單列清單方塊或下拉式清單方塊中加入一個項目。在一個多列清單方塊或下拉式清單方塊中加入一行。
  10.                 .List(.ListCount - 1, 0) = e            'ComboBox第1欄 : 字串
  11.                 .List(.ListCount - 1, 1) = e.Row - 編號 'ComboBox第2欄 : 列號 1 - ....
  12.             End With
  13.         Next
  14.     End With
  15.     For I = 0 To UBound(Ar)
  16.       Set Ar(I) = Me.Controls("TextBox" & I + 1) '陣列的元素設為TextBox (物件)
  17.     Next
  18.     Image1.PictureSizeMode = fmPictureSizeModeStretch
  19.     '參數fmPictureSizeModeStretch= 1 :調整圖片大小以填滿表單或活頁,此設定會造成圖片的水平與垂直方向比例被扭曲。
  20. End Sub
  21. Private Sub ComboBox1_Change()
  22.     Dim Sp As Picture, I As Integer, R As Integer
  23.     If ComboBox1.ListIndex > -1 Then                    '選擇 ComboBox1的內容
  24.         R = ComboBox1.List(ComboBox1.ListIndex, 1)      'ComboBox第2欄 : 列號 1....
  25.         For I = 0 To UBound(Ar)
  26.             If I <> UBound(Ar) Then
  27.                 Ar(I).Text = Sh.Cells(編號 + R, I + 2)  '列號 : 編號 + R
  28.             Else
  29.                 '2, 在第11個TextBox11物件中, 可否做到把sheet1第11欄及12欄合拼顯示,如123aaa
  30.                  Ar(I).Text = Sh.Cells(編號 + R, I + 2) & Sh.Cells(編號 + R, I + 3)
  31.              End If
  32.         Next
  33.     End If
  34.     With Sh
  35.         For Each Sp In .Pictures             '尋找N欄中的圖片,複製之
  36.             If Sp.TopLeftCell.Address(0, 0) = "N" & 編號 + R Then Sp.Copy: Exit For
  37.         Next
  38.         '利用圖表匯出存檔
  39.         With .ChartObjects.Add(1, 1, Sp.Width, Sp.Height)           '新增 圖表
  40.              .Chart.Paste                                           '貼上 圖片
  41.              .Chart.Export Filename:=ThePicture                     '匯出 圖片
  42.              .Delete                                                '刪除 圖表
  43.         End With
  44.     End With
  45.     Image1.Picture = LoadPicture(ThePicture)                         'Image1 指定圖片
  46. End Sub
複製代碼

TOP

QA1  ComboBox1 是文字型態還是數字型態.???

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

GBKEE版大, 安好
小弟有問題再度煩勞版大,  在大大寫的程式中,  不知是何原因,
在表單下拉編號中, 選擇了編號, 但却出現13及1004錯誤, 同時圖片亦不能顯示, 懇請大大協助,
再度煩勞, 敬請大大見諒, 最後祝願快樂
附件 KK.rar (526.38 KB)
hong912

TOP

        靜思自在 : 不要隨心所欲,要隨心教育自己。
返回列表 上一主題