Board logo

標題: [發問] 選取特定儲存格範圍內的圖形物件的VBA語法 [打印本頁]

作者: jsleee    時間: 2020-1-5 17:31     標題: 選取特定儲存格範圍內的圖形物件的VBA語法

您好,有個關於選取特定儲存格範圍內的圖形物件的VBA語法問題請教
我有一個工作表,內含許多照片物件
這些照片物件是透過VBA從別的工作表透過儲存格範圍複製貼上的
但我需要在貼上後,選擇特定的儲存格範圍內的照片進行照片格式化動作
然一直找不到正確的 語法 來選取特定的儲存格範圍內的照片
請先進們指導,感激不盡

JS
作者: jsleee    時間: 2020-1-6 11:41

回復 1# jsleee

因為沒有任何的回覆,可能是我表達的不夠清楚,所以我再換另一種方式來說
我的工作表中有許多的照片物件,排列於儲存格中
如果我想要知道在某一個儲存格內的照片物件的名稱,是否有辦法透過VBA語法取得?
換句話說,我已知道某一儲存格位置內有一個照片物件,有無辦法透過VBA語法取得該照片的名稱或資訊?
因為我要用VBA進行後續的位置調整與格式或動作
希望以上補充有助於大家了解我的問題,也希望有先進可以指點迷津
謝謝
JS
作者: stillfish00    時間: 2020-1-9 13:08

回復 2# jsleee
VBA只能從圖片得到其左上角的儲存格
沒辦法"直接"從儲存格得到對應圖片
所以只能自己寫Function用For去找,例如下面這樣
  1. Function GetPicByCell(from_cell As Range) As Picture
  2.     For Each pic In ActiveSheet.Pictures
  3.         If pic.TopLeftCell.Address = from_cell.Address Then
  4.             Set GetPicByCell = pic
  5.             Exit Function
  6.         End If
  7.     Next
  8.     Set GetPicByCell = Nothing
  9. End Function
複製代碼
  1. Sub Test1()
  2.     Dim pic As Picture
  3.     Set pic = GetPicByCell(Cells(32, 2))
  4.     If pic Is Nothing Then
  5.         MsgBox "找不到圖片"
  6.     Else
  7.         Debug.Print pic.Width, pic.Height
  8.     End If
  9. End Sub
複製代碼

作者: jsleee    時間: 2020-1-9 15:30

回復 3# stillfish00

感謝 stillfish00 先進的指點
豁然開朗
謝謝

JS




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