請問我這VBA哪裡有問題?為什麼會無法出現 424 無法找到物件呢?
- 帖子
- 228
- 主題
- 62
- 精華
- 0
- 積分
- 364
- 點名
- 1
- 作業系統
- Win 10
- 軟體版本
- Office 2007 & 2010
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2011-3-5
- 最後登錄
- 2025-1-28

|
12#
發表於 2018-6-17 11:36
| 只看該作者
回復 11# GBKEE
G大 版主您好:對於問題2 我有照您說的將哪一段程式隱藏就不會將沒有的資料對應的圖片,撈出下一張圖片了。
是我之前沒有跟您說清楚。
這樣就全部解決了我的問題了,很感謝您這麼有耐心地回覆我的問題,再次感謝您。 |
|
|
|
|
|
|
- 帖子
- 228
- 主題
- 62
- 精華
- 0
- 積分
- 364
- 點名
- 1
- 作業系統
- Win 10
- 軟體版本
- Office 2007 & 2010
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2011-3-5
- 最後登錄
- 2025-1-28

|
13#
發表於 2018-6-18 09:43
| 只看該作者
|
|
|
|
|
|
- 帖子
- 228
- 主題
- 62
- 精華
- 0
- 積分
- 364
- 點名
- 1
- 作業系統
- Win 10
- 軟體版本
- Office 2007 & 2010
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2011-3-5
- 最後登錄
- 2025-1-28

|
14#
發表於 2018-6-18 10:04
| 只看該作者
回復 13# jeffrey628litw
這個問題下面寫錯,應該是
2.想要顯示圖片資料,以便超連結到Database 工作表,(不知是否用Textbox,是的話要如何寫VBA呢?)
1.希望將工作表Database 裡面將E欄對應B欄的資料撈出來,
到Textbox,
例如E3撈出B3到Textbox1
2.然後讓Textbox的文字超連結到工作表 Database
|
|
|
|
|
|
|
- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
15#
發表於 2018-6-18 12:15
| 只看該作者
本帖最後由 GBKEE 於 2018-6-20 09:01 編輯
回復 14# jeffrey628litw
試試看- Option Explicit '強制 模組的變數必須要 Dim的宣告,會使程式易於偵錯
- Dim Sh(1 To 2) As Worksheet, D As Object, xTempPicture As String '模組頂端上 Dim的變數 可在UserForm1的全部程式中使用
- Dim AR_Image(), AR_TexTbox(), AR_Label(), xName As String
- Private Sub UserForm_Initialize()
- Dim A As Range, S As String, E As Variant
- Set Sh(1) = ThisWorkbook.Sheets("Database") '工作表如有變動時在此修改即可
- Set Sh(2) = ThisWorkbook.Sheets.Add
- AR_Image = Array(Image1, Image2, Image3, Image4)
- AR_TexTbox = Array(TextBox1, TextBox2, TextBox3, TextBox4)
- AR_Label = Array(Label1, Label4, Label6, Label8)
- xTempPicture = "D:\NoPicture.jpg"
- xName = "D:\temp.jpg"
- 照片Export Sh(1).Range("F2"), xTempPicture '置入"沒有圖片"檔 當作預設圖片及沒有圖片
- Set D = CreateObject("Scripting.Dictionary")
- For Each A In Sh(1).Range(Sh(1).[E3], Sh(1).[E3].End(xlDown))
- S = Replace(Trim(A), vbLf, Space(1)) '換行字元 改成 Space(1)
- If D.EXISTS(S) Then
- D(S) = D(S) & "," & A.Offset(, 1).Address
- Else
- D(S) = A.Offset(, 1).Address
- End If
- Next
- ComboBox1.List = D.KEYS
- For E = 0 To UBound(AR_Image)
- With AR_Image(E) '設定圖片的顯示設模式
- .Picture = LoadPicture(xTempPicture)
- .PictureAlignment = fmPictureAlignmentCenter ' *** 0,1,2,3,4
- .PictureSizeMode = 3 'fmPictureSizeModeClip ' *** 0,1,3
- '***** 請自行調整******
- '**1.顯示圖片可以自動調整圖片大小在框框內:將Display Each Player Photo 這按鈕顯示的白色框框內圖片可以
- '***自動顯示和 After Sieve Display Photo 白色框框內圖片自動調整大小及位置
- End With
- AR_TexTbox(E).MultiLine = True '指定控制項是否接受並顯示多行文字。
- AR_Label(E).WordWrap = False '內容在行末是否自動換行
- Next
- End Sub
- '***********************************************************************************
- '以下為開啟UserForm1時會自動開啟1工作表,有以下程式在關閉UserForm1時會自動關閉工作表
- Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
- Application.DisplayAlerts = False
- Sh(2).Delete
- Kill xTempPicture
- Kill xName ' "D:\temp.jpg" '刪除暫存圖片
- Application.DisplayAlerts = True
- End Sub
- '***********************************************************************************
- Private Sub ComboBox1_Change()
- Dim A As Variant, i As Integer, S As String, ii As Integer
- For i = 0 To UBound(AR_Label)
- AR_Label(i).Caption = "沒有此圖片"
- AR_TexTbox(i).Text = ""
- AR_Image(i).Picture = LoadPicture(xTempPicture) '表單預設的圖片 為 Databasse 工作表中的 F3 儲存格圖片
- Next
- With ComboBox1
- If .ListIndex = -1 Then Exit Sub
- A = Split(D(.Value), ",")
- For i = 0 To 3 '如要增加或減少圖片則 修改 i = 0 To 3 後面的3的數量
- If i <= UBound(A) Then
- S = A(i)
- If 圖片檢查(S) Then '
- AR_Image(ii).Picture = LoadPicture(xName)
- AR_Label(ii).Caption = Sh(1).Range(S).Offset(, -1).Text
- AR_TexTbox(ii).Text = Sh(1).Range(S).Offset(, -4).Text
- ii = ii + 1
- End If
- End If
- Next
- End With
- End Sub
- Private Function 圖片檢查(xPicture As String) As Boolean
- Dim S As Shape
- For Each S In Sh(1).Shapes
- '*************************************************
- 'Shape物件是照片且位置是D(ComboBox1.Value).Address)
- If S.Type = msoPicture And S.TopLeftCell.Address = xPicture Then
- 圖片檢查 = True
- Exit For
- End If
- '***************************************************
- Next
- If 圖片檢查 = True Then 照片Export S, xName
-
- End Function
- Private Sub 照片Export(P As Object, xName As String)
- If xName <> "D:\temp.jpg" Then
- P.CopyPicture
- Else
- P.Copy
- End If
- With Sh(2).ChartObjects.Add(1, 1, P.Width, P.Height) '新增圖表
- .Chart.Paste '貼上圖片
- .Chart.Export xName '匯出圖表,暫存圖片
- .Delete '刪除圖表
- End With
- End Sub
複製代碼 |
|
|
|
|
|
|
- 帖子
- 228
- 主題
- 62
- 精華
- 0
- 積分
- 364
- 點名
- 1
- 作業系統
- Win 10
- 軟體版本
- Office 2007 & 2010
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2011-3-5
- 最後登錄
- 2025-1-28

|
16#
發表於 2018-6-18 14:25
| 只看該作者
回復 15# GBKEE
G大 版主您好:出現下面的情況,我查不到如何解?
|
|
|
|
|
|
|
- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
17#
發表於 2018-6-18 15:16
| 只看該作者
回復 16# jeffrey628litw
查看這程序上的程式碼有無缺失掉- Private Sub 照片Export(P As Object, xName As String)
複製代碼 |
|
|
|
|
|
|
- 帖子
- 228
- 主題
- 62
- 精華
- 0
- 積分
- 364
- 點名
- 1
- 作業系統
- Win 10
- 軟體版本
- Office 2007 & 2010
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2011-3-5
- 最後登錄
- 2025-1-28

|
18#
發表於 2018-6-19 15:25
| 只看該作者
回復 17# GBKEE
G大 版主您好 :我整理好檔案了,已經符合我的想法了,非常感謝您的大力幫忙,我也將檔案放在這裡分享,再次感謝。
雲端檔案分享:http://webhd.xuite.net/_oops/jeffrey628litw/uxz |
|
|
|
|
|
|
- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
19#
發表於 2018-6-20 09:06
| 只看該作者
回復 18# jeffrey628litw
[14] 大谷翔平 Shohei Ohtani球棒卡球棒頂端 F15 沒有圖片
所以修改 15#的程式碼,會更為貼切 |
|
|
|
|
|
|
- 帖子
- 228
- 主題
- 62
- 精華
- 0
- 積分
- 364
- 點名
- 1
- 作業系統
- Win 10
- 軟體版本
- Office 2007 & 2010
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2011-3-5
- 最後登錄
- 2025-1-28

|
20#
發表於 2018-6-20 16:26
| 只看該作者
回復 19# GBKEE
G大 版主您好:我不懂您的意思,我F15儲存格是故意不放圖片要測試撈不撈的出預設的圖片(沒有圖片) |
|
|
|
|
|
|