標題:
一個查詢的表單,
[打印本頁]
作者:
hong912
時間:
2012-9-15 11:24
標題:
一個查詢的表單,
各版主及各大大, 安好, 小弟初次到這論壇, 亦初次發問, 希望能得到大大回應, 更希望從回應中學習, 現把檔案上傳, 先行謝過各位, 謝謝!!
[attach]12507[/attach]
作者:
GBKEE
時間:
2012-9-15 17:16
回復
1#
hong912
UserForm的程式碼
Option Explicit '在模組層次中強迫每個在模組�堛瘍僂くㄔ眸楨�確的宣告。
Private Const 編號 = 3 '資料庫的欄位列號
Private Const ThePicture = "d:\ttt.gif" '設立匯出圖片的路徑檔名
Dim Ar(10), Sh As Worksheet
'Dim Ar()
Private Sub UserForm_Initialize() '表單初始化的預設事件程序
Dim I As Integer
Set Sh = Sheets("Sheet1") '資料庫的工作表
With Sh
ComboBox1.List = .Range("a4", .[a4].End(xlDown)).Value '指定 ComboBox1的內容
End With
'Dim Ar()時可用下式
'Ar = Array(TextBox1, TextBox2, TextBox3, TextBox4, TextBox5, TextBox6, TextBox7, TextBox8, TextBox9, TextBox10, TextBox11)
For I = 0 To UBound(Ar)
Set Ar(I) = Me.Controls("TextBox" & I + 1) '陣列的元素設為TextBox (物件)
Next
Image1.PictureSizeMode = fmPictureSizeModeStretch
'參數fmPictureSizeModeStretch= 1 :調整圖片大小以填滿表單或活頁,此設定會造成圖片的水平與垂直方向比例被扭曲。
End Sub
Private Sub ComboBox1_Change()
Dim Sp As Picture, I As Integer
If ComboBox1.ListIndex > -1 Then '選擇 ComboBox1的內容
For I = 0 To UBound(Ar)
Ar(I).Text = Sh.Cells(編號 + ComboBox1, I + 2)
Next
End If
With Sh
For Each Sp In .Pictures '尋找N欄中的圖片,複製之
If Sp.TopLeftCell.Address(0, 0) = "N" & 編號 + ComboBox1 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
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) '表單絕束時 預設事件程序
If Dir(ThePicture) <> "" Then Kill ThePicture '刪除 匯出的圖片
End Sub
複製代碼
作者:
hong912
時間:
2012-9-15 18:46
回復
2#
GBKEE
GBKEE, 版大, 安好,
感謝回應, 已試用, 有小許問題, 但會試行解決, 若不成功, 便再請教, 真的衷心感謝謝, 祝健康快樂.. 感恩..
作者:
hong912
時間:
2012-9-16 14:28
GBKEE 版大好,
大大的編寫很高深, 希望能從中學習, 現有2個問題請教, 附件, 內有說明, 先行謝過大大..祝快樂!!
[attach]12515[/attach]
作者:
GBKEE
時間:
2012-9-16 16:07
回復
4#
hong912
試試看
Private Sub UserForm_Click() '在表單沒有控制項的地方按下滑鼠左鍵的事件
'1當圖片傳回表單, 圖片不清, 可有方辦解決 ':修改顯示背景圖片的方式
With Image1
If .PictureSizeMode = fmPictureSizeModeClip Then
.PictureSizeMode = fmPictureSizeModeStretch
ElseIf .PictureSizeMode = fmPictureSizeModeStretch Then
.PictureSizeMode = fmPictureSizeModeZoom
ElseIf .PictureSizeMode = fmPictureSizeModeZoom Then
.PictureSizeMode = fmPictureSizeModeClip
End If
End With
' [ 常 數] [值] [ 說 明]
'fmPictureSizeModeClip 0 裁掉圖片多出來的部分 ( 預設 )。
'fmPictureSizeModeStretch 1 調整圖片大小以填滿表單或活頁,此設定會造成圖片的水平與垂直方向比例被扭曲。
'fmPictureSizeModeZoom 3 放大圖片,但不扭曲圖片水平與垂直方向的比例。
End Sub
Private Sub ComboBox1_Change()
Dim Sp As Picture, I As Integer
If ComboBox1.ListIndex > -1 Then '選擇 ComboBox1的內容
For I = 0 To UBound(Ar)
If I <> UBound(Ar) Then
Ar(I).Text = Sh.Cells(編號 + ComboBox1, I + 2)
Else
'2, 在第11個TextBox11物件中, 可否做到把sheet1第11欄及12欄合拼顯示,如123aaa
Ar(I).Text = Sh.Cells(編號 + ComboBox1, I + 2) & Sh.Cells(編號 + ComboBox1, I + 3)
End If
Next
End If
With Sh
For Each Sp In .Pictures '尋找N欄中的圖片,複製之
If Sp.TopLeftCell.Address(0, 0) = "N" & 編號 + ComboBox1 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
時間:
2012-9-16 21:39
回復
5#
GBKEE
衷心感謝GBKEE版大, 謝謝, 祝願快樂..
作者:
hong912
時間:
2012-9-21 16:20
GBKEE版大, 安好
小弟有問題再度煩勞版大, 在大大寫的程式中, 不知是何原因,
在表單下拉編號中, 選擇了編號, 但却出現13及1004錯誤, 同時圖片亦不能顯示, 懇請大大協助,
再度煩勞, 敬請大大見諒, 最後祝願快樂
附件 [attach]12580[/attach]
作者:
mark15jill
時間:
2012-9-21 16:51
QA1 ComboBox1 是文字型態還是數字型態.???
作者:
GBKEE
時間:
2012-9-21 17:03
回復
7#
hong912
ComboBox1 增加一欄內容
Private Sub UserForm_Initialize() '表單初始化的預設事件程序
Dim I As Integer, e As Range
Set Sh = Sheets("Sheet1") '資料庫的工作表
With Sh
For Each e In .Range("a4", .[a4].End(xlDown)) '指定 ComboBox1的內容
With ComboBox1 'ComboBox1.ColumnCount=1 系統預設 顯示1欄資料
' .ColumnCount=2 '可顯示2欄資料
.AddItem
'AddItem 方法 在一個單列清單方塊或下拉式清單方塊中加入一個項目。在一個多列清單方塊或下拉式清單方塊中加入一行。
.List(.ListCount - 1, 0) = e 'ComboBox第1欄 : 字串
.List(.ListCount - 1, 1) = e.Row - 編號 'ComboBox第2欄 : 列號 1 - ....
End With
Next
End With
For I = 0 To UBound(Ar)
Set Ar(I) = Me.Controls("TextBox" & I + 1) '陣列的元素設為TextBox (物件)
Next
Image1.PictureSizeMode = fmPictureSizeModeStretch
'參數fmPictureSizeModeStretch= 1 :調整圖片大小以填滿表單或活頁,此設定會造成圖片的水平與垂直方向比例被扭曲。
End Sub
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
時間:
2012-9-21 17:39
回復
9#
GBKEE
感謝GBKEE版大再度回應, 待放工回家才能試用, 但覺得即時回應及說感謝, 是必須, 因這是一種禮貌, 再說聲感謝, 謝謝!!
作者:
hong912
時間:
2012-9-21 23:28
回復
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
作者:
Hsieh
時間:
2012-9-22 00:12
回復
11#
hong912
試試看下列程式碼
Dim PicAr() As Picture '圖片陣列
Private Const fs = "E:\temp.jpg" '暫存圖片目錄位置
Private Const r = 4 '資料起始列號
Private Sub ComboBox1_Change() '選擇編號事件
Dim k%, i%
With ComboBox1
k = .ListIndex '下拉選單選取位置
For i = 1 To 11
Controls("TextBox" & i).Text = IIf(i = 11, .List(k, i) & .List(k, i + 1), .List(k, i)) '文字方塊寫入
Next
End With
PicAr(k).CopyPicture '複製圖片
With Sheet1.ChartObjects.Add(, , PicAr(k).Width, PicAr(k).Height) '新增圖表
.Chart.Paste '貼上圖片
.Chart.Export fs '以圖表匯成圖片
Image1.Picture = LoadPicture(fs) '載入圖片
.Delete '刪除圖表
End With
End Sub
Private Sub UserForm_Initialize() '表單初始化
Dim Pic As Picture
With Sheet1
ReDim PicAr(.Pictures.Count)
For Each Pic In .Pictures '將每個圖片置入陣列
Set PicAr(Pic.TopLeftCell.Row - r) = Pic
Next
ComboBox1.List = .Range("A4", .[A4].End(xlDown).Offset(, 12)).Value '下拉清單內容
End With
Image1.PictureSizeMode = fmPictureSizeModeStretch '圖片載入的型態
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) '關閉表單
If Dir(fs) <> "" Then Kill fs '刪除暫存圖片檔案
End Sub
複製代碼
[attach]12586[/attach]
作者:
317
時間:
2012-9-22 07:33
回復
12#
Hsieh
Hsieh版大, 早晨
謝謝回應, 一早起床, 看到回應, 的確很高興, 但趕開工, 時間迫切, 要到夜晚才能試用, 感謝回應, 祝願快樂, 謝謝!!
作者:
hong912
時間:
2012-9-22 07:43
回復
12#
Hsieh
可以運行了, 謝謝大大
作者:
GBKEE
時間:
2012-9-22 14:30
回復
11#
hong912
9# 的程式碼, 是依據你7# 附檔修改的,我執行時並沒有你提到的錯誤
請查看你檔案中的圖片是否有移動,離開7# 附檔的位置.
作者:
hong912
時間:
2012-9-22 22:28
回復
15#
GBKEE
GBKEE版大,
謝謝大大再度提示, 的確最初沒為意最下列儲存格有二列是沒有圖片, 多謝大大提示, 感恩..謝謝!!
作者:
317
時間:
2012-9-23 10:02
昨晚試過, 很合用, 先謝過發問的樓主,
在此更向CBKEE及Hsieh两位超級大大致謝, 感謝两位長久的教導, 過去及現在, 令小妹領會了不小,
謝謝謝!!
作者:
hong912
時間:
2012-9-23 18:44
GBKEE 版大, 安好
這两天細看大大所寫的程式, 老實說, 只知道是點點, 同時亦發現一個圖片問題,
希望大大能協助, 在大大的程式中是可以運行, 但當遇上一些不支援的圖片格式
如png, 便會彈出下列提示,
執行階段錯誤91, 沒有設定物件變數或with區塊變數,
大大, 可否修改程式至任何圖片格式都可使用, 煩勞大大, 在此先行謝謝謝!!
Option Explicit '在模組層次中強迫每個在模組�堛瘍僂くㄔ眸楨�確的宣告。
Private Const 編號 = 3 '資料庫的欄位列號
Private Const ThePicture = "d:\ttt.gif" '設立匯出圖片的路徑檔名
Dim Ar(10), Sh As Worksheet
Private Sub UserForm_Initialize() '表單初始化的預設事件程序
Dim I As Integer, e As Range
Set Sh = Sheets("Sheet1") '資料庫的工作表
With Sh
For Each e In .Range("a4", .[a4].End(xlDown)) '指定 ComboBox1的內容
With ComboBox1 'ComboBox1.ColumnCount=1 系統預設 顯示1欄資料
' .ColumnCount=2 '可顯示2欄資料
.AddItem
'AddItem 方法 在一個單列清單方塊或下拉式清單方塊中加入一個項目。在一個多列清單方塊或下拉式清單方塊中加入一行。
.List(.ListCount - 1, 0) = e 'ComboBox第1欄 : 字串
.List(.ListCount - 1, 1) = e.Row - 編號 'ComboBox第2欄 : 列號 1 - ....
End With
Next
End With
For I = 0 To UBound(Ar)
Set Ar(I) = Me.Controls("TextBox" & I + 1) '陣列的元素設為TextBox (物件)
Next
Image1.PictureSizeMode = fmPictureSizeModeStretch
'參數fmPictureSizeModeStretch= 1 :調整圖片大小以填滿表單或活頁,此設定會造成圖片的水平與垂直方向比例被扭曲。
End Sub
Private Sub UserForm_Click() '在表單沒有控制項的地方按下滑鼠左鍵的事件
'1當圖片傳回表單, 圖片不清, 可有方辦解決 ':修改顯示背景圖片的方式
With Image1
If .PictureSizeMode = fmPictureSizeModeClip Then
.PictureSizeMode = fmPictureSizeModeStretch
ElseIf .PictureSizeMode = fmPictureSizeModeStretch Then
.PictureSizeMode = fmPictureSizeModeZoom
ElseIf .PictureSizeMode = fmPictureSizeModeZoom Then
.PictureSizeMode = fmPictureSizeModeClip
End If
End With
' [ 常 數] [值] [ 說 明]
'fmPictureSizeModeClip 0 裁掉圖片多出來的部分 ( 預設 )。
'fmPictureSizeModeStretch 1 調整圖片大小以填滿表單或活頁,此設定會造成圖片的水平與垂直方向比例被扭曲。
'fmPictureSizeModeZoom 3 放大圖片,但不扭曲圖片水平與垂直方向的比例。
End Sub
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
作者:
Hsieh
時間:
2012-9-23 23:41
回復
18#
hong912
請上傳無法讀取的問題檔案
應該只要是能插入到工作表中的圖片均可讀取才對
作者:
hong912
時間:
2012-9-24 08:15
回復
19#
Hsieh
Hsieh版大, 早晨
昨夜自行研究了很久, 用相機及手機攝影了照片及上網下載圖片試試, 並沒有問題, 再了解圖片格式, 也有不同格式, 同樣地能傳回圖片, 後來小弟把不能傳回的圖片剪下放進圖像中心, 再從圖像中心貼回檔案內, 問題竟解決,
謝過大大回應, 感恩..
作者:
周大偉
時間:
2012-9-25 21:54
回復
12#
Hsieh
Hsieh版主,
今天再到這論壇, 看到這篇文章, 下載了希望日後能從中學習,
有一問題想請教版大, 當從下拉中選定編號, 便出現執行錯誤449, 程式中有黃色錯誤處, 大大, 到底是何問題, 請教..感恩..
[attach]12606[/attach]
作者:
Hsieh
時間:
2012-9-25 22:31
回復
21#
周大偉
沒注意到2003以外版本,圖表新增時,不可忽略left與top引數
With Sheet1.ChartObjects.Add(
1, 1
, PicAr(k).Width, PicAr(k).Height)
作者:
周大偉
時間:
2012-9-25 22:56
回復
22#
Hsieh
謝謝大大指導, 把程式碼換上, 問題便出現下列情況,
執行錯誤階段76, Chart.Export fs '以圖表匯成圖片
請大大教導..感恩..
作者:
Hsieh
時間:
2012-9-25 23:04
回復
23#
周大偉
可能是
Private Const fs = "E:\temp.jpg" '暫存圖片目錄位置
這個目錄位置不存在
作者:
周大偉
時間:
2012-9-25 23:38
本帖最後由 周大偉 於 2012-9-25 23:40 編輯
回復
24#
Hsieh
大大, 就煩勞了, 但有一個現像, 當選定編號後, 便出現, 執行錯誤階段76, Chart.Export fs '以圖表匯成圖片, 但圖片却貼上工作表1, a1位置, 現上傳附件, 請大大教導,
[attach]12607[/attach][
作者:
317
時間:
2012-9-27 23:54
回復
24#
Hsieh
hsieh版大, 安好,
這個目錄位置不存在, 這到底是指, 因小妹理解, 作業系統中一般辦公室軟件都會有圖像檔, 而小妹也能運用上述程式, 而大大回應上述樓主是指這個目錄位置不存在, 希望大大能解說一下, 同時在這情況下, 可有方辦彌補..謝謝!!
作者:
Hsieh
時間:
2012-9-28 07:16
回復
26#
317
可能是電腦中沒有E槽分割吧
作者:
GBKEE
時間:
2012-9-28 16:40
回復
25#
周大偉
Dim PicAr() As Picture '圖片陣列
Dim fs As String ' *** = "E:\temp.jpg" '暫存圖片目錄位置
Private Const r = 4 '資料起始列號
Private Sub UserForm_Initialize() '表單初始化
Dim Pic As Picture
fs = CurDir & "\temp.jpg" '*** 這裡修改為當下的目錄 ( CurDir )為暫存圖片目錄位置 ***
With Sheet1
ReDim PicAr(.Pictures.Count)
For Each Pic In .Pictures '將每個圖片置入陣列
Set PicAr(Pic.TopLeftCell.Row - r) = Pic
Next
ComboBox1.List = .Range("A4", .[A4].End(xlDown).Offset(, 12)).Value '下拉清單內容
End With
Image1.PictureSizeMode = fmPictureSizeModeStretch '圖片載入的型態
End Sub
複製代碼
作者:
周大偉
時間:
2012-9-28 19:10
回復
28#
GBKEE
先謝謝大大,
fs = CurDir & "\temp.jpg" '*** 這裡修改為當下的目錄 ( CurDir )為暫存圖片目錄位置 ***
這句的意思是指目錄位置, 是指, 如c盤d盤, 或檔案路徑, 大大可否指導, 謝謝!!
作者:
Hsieh
時間:
2012-9-29 09:30
回復
29#
周大偉
Dim PicAr() As Picture '圖片陣列
Dim fs$
Private Const r = 4 '資料起始列號
Private Sub ComboBox1_Change() '選擇編號事件
Dim k%, i%
With ComboBox1
k = .ListIndex '下拉選單選取位置
For i = 1 To 11
Controls("TextBox" & i).Text = IIf(i = 11, .List(k, i) & .List(k, i + 1), .List(k, i)) '文字方塊寫入
Next
End With
PicAr(k).CopyPicture '複製圖片
With Sheet1.ChartObjects.Add(1, 1, PicAr(k).Width, PicAr(k).Height) '新增圖表
.Chart.Paste '貼上圖片
.Chart.Export fs '以圖表匯成圖片
Image1.Picture = LoadPicture(fs) '載入圖片
.Delete '刪除圖表
End With
End Sub
Private Sub UserForm_Initialize() '表單初始化
Dim Pic As Picture
fs = CurDir & "\temp.jpg" '*** 這裡修改為當下的目錄 ( CurDir )為暫存圖片目錄位置 ***
With Sheet1
ReDim PicAr(.Pictures.Count)
For Each Pic In .Pictures '將每個圖片置入陣列
Set PicAr(Pic.TopLeftCell.Row - r) = Pic
Next
ComboBox1.List = .Range("A4", .[A4].End(xlDown).Offset(, 12)).Value '下拉清單內容
End With
Image1.PictureSizeMode = fmPictureSizeModeStretch '圖片載入的型態
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) '關閉表單
If Dir(fs) <> "" Then Kill fs '刪除暫存圖片檔案
End Sub
複製代碼
作者:
GBKEE
時間:
2012-9-29 16:34
回復
29#
周大偉
CurDir: 傳回前目錄位置
當使用開啟舊檔指令: 所看到的目錄位置
作者:
周大偉
時間:
2012-9-29 20:24
在此謝過hsieh及gbkee两位超版大, 衷心感謝, 希望能從中學習, 最後祝願中秋節快樂, 謝謝!!
作者:
hong912
時間:
2012-9-30 11:09
小弟也在此衷心感謝這篇文章得到2位版主回應及各樓主的注意, 先行說聲謝謝謝!!
基於工作上的需求, 小弟在想, 不知可否把程式改造為两個檔案, 1資料庫檔案, 這檔案是存放資料,
2查詢檔案, 用家在這檔案內按下查詢按鈕, 資料便從檔案室1資料庫中傳回, 功能一樣, 但不同的, 在同
一檔檔案室查詣改為在另一檔案查詢, 這樣的效果是否可做到,
今天是中秋節, 小弟於此, 祝大大們及各樓主節日人月两全, 謝謝!!
[attach]12642[/attach][attach]12643[/attach]
作者:
GBKEE
時間:
2012-9-30 15:50
本帖最後由 GBKEE 於 2012-9-30 15:51 編輯
回復
33#
hong912
修改 查詢檔案 表單程式碼如下
Dim PicAr() As Picture '圖片陣列
Dim fs As String, Sh As Worksheet ' 表單查詢表 = "E:\temp.jpg" '暫存圖片目錄位置
Private Const r = 4 '資料起始列號
Private Sub UserForm_Initialize() '表單初始化
Dim Pic As Picture
查看資料庫
fs = CurDir & "\temp.jpg" '表單查詢表 這裡修改為當下的目錄 ( CurDir )為暫存圖片目錄位置 表單查詢表
With Sh
ReDim PicAr(.Pictures.Count)
For Each Pic In .Pictures '將每個圖片置入陣列
Set PicAr(Pic.TopLeftCell.Row - r) = Pic
Next
ComboBox1.List = .Range("A4", .[A4].End(xlDown).Offset(, 12)).Value '下拉清單內容
End With
Image1.PictureSizeMode = fmPictureSizeModeStretch '圖片載入的型態
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) '關閉表單
If Dir(fs) <> "" Then Kill fs '刪除暫存圖片檔案
Sh.Parent.Close 0 '關閉資料庫檔案
End Sub
Private Sub 查看資料庫()
Dim 資料庫 As String, Wo As Workbook, Msg As Boolean 'Boolean型態的預設值為 False
資料庫 = "D:\資料庫.XLS" '資料庫檔案的路徑目錄
For Each Wo In Workbooks '活頁簿物件集合
If Wo.FullName = 資料庫 Then '資料庫檔案開啟中
Msg = True
Set Sh = Wo.Sheets(1) '將變數指定為第一個工作表
Exit For
End If
Next
Application.ScreenUpdating = False
'ScreenUpdating 屬性 如果螢幕更新功能是開啟的則為 True。讀/寫 Boolean。
If Msg = False Then Set Sh = CreateObject(資料庫).Sheets(1)
'資料庫檔案如未開啟, 開啟它:將變數指定為第一個工作表
Application.ScreenUpdating = True
End Sub
複製代碼
作者:
hong912
時間:
2012-9-30 16:14
回復
34#
GBKEE
謝謝大大回應, 會於放工後研究及學習, 謝謝!!, 祝節日健康快樂..
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)