Board logo

標題: [發問] 刪除特定物件 [打印本頁]

作者: li_hsien    時間: 2013-12-13 17:29     標題: 刪除特定物件

請問各位大大

小弟我用了一些語法插入物件(.pdf)到儲存格中
  1.     DisplayAsIcon:=True, IconFileName:= _
  2.                     "C:\WINDOWS\Installer\{AC76BA86-7AD7-1028-7B44-A93000000001}\PDFFile_8.ico", _
  3.                     IconIndex:=0, IconLabel:=icon_name1).Select
複製代碼
我現在想設個reset鍵

讓所有的.pdf檔一次刪除掉

請問這語法該怎麼撰寫呢???

一直試不出來
我用了ActiveSheet.OLEObjects.delete
結果全部物件都刪了XDD

請問該如何指定只刪.pdf的檔案??

謝謝  :  )
作者: wl02353427    時間: 2013-12-13 20:26

回復 1# li_hsien


若是選取儲存格刪除的話應該是
  1.     ActiveSheet.Select
  2.     Selection.ClearContents
複製代碼

作者: li_hsien    時間: 2013-12-16 08:18

回復 2# wl02353427

謝謝w的回覆  :  )

不過我是要刪掉儲存格中的物件

而非儲存格的內容

此做法應該只能清掉儲存格的內容而已
作者: Hsieh    時間: 2013-12-16 15:56

  1. Sub ex()
  2. Dim Ob As OLEObject
  3. With 工作表1
  4. For Each Ob In .OLEObjects
  5.    If Ob.OLEType = xlOLELink Then
  6.       ar = Split(Ob.SourceName, ".")
  7.       If ar(UBound(ar)) = "pdf!'" Then Ob.Delete
  8.    End If
  9. Next
  10. End With
  11. End Sub
複製代碼
回復 3# li_hsien
作者: li_hsien    時間: 2013-12-16 18:15

回復 4# Hsieh


請問板大

我 If Ob.OLEType = xlOLELink Then 這行

一直判斷不進去

不知原因出在哪裡????
作者: li_hsien    時間: 2013-12-18 08:55

回復 4# Hsieh

我現在才發現通知

附檔的有點晚

[attach]17076[/attach]

在A欄位填上編號

最後按下按鈕

會把PDF檔抓進來到B欄

我想設個RESET按鈕

讓所附的PDF檔可以清除掉

麻煩大大幫我看看

謝謝  :  )
作者: li_hsien    時間: 2013-12-19 09:19

回復 7# nissin

[attach]17081[/attach]

我的作法是在A欄輸入所要的PDF檔名

按下按鈕

在特定路徑搜尋PDF檔

放到B欄位裡面

以下是我附檔的方式
  1. Private Sub Attach_File_Click()

  2.     For i = 2 To Range("A65536").End(xlUp).Row
  3.    
  4.     Range("B" & i).Select
  5.     icon_name = Range("A" & i)
  6.             
  7.     Path = "C:\Documents and Settings\hsien.li\桌面\"
  8.     Filename = Path & icon_name & ".pdf"
  9.             
  10.         '報告存否
  11.         If Dir(Filename) <> "" Then
  12.             ActiveSheet.OLEObjects.Add(Filename:=Filename, Link:=False, Link:=False, _
  13.                 DisplayAsIcon:=True, IconFileName:= _
  14.                 "C:\WINDOWS\Installer\{AC76BA86-7AD7-1028-7B44-A93000000001}\PDFFile_8.ico", _
  15.                 IconIndex:=0, IconLabel:=icon_name).Select
  16.         Else
  17.             Range("B" & i) = "找不到" & icon_name & "檔案"
  18.         End If
  19.         
  20.         Debug.Print icon_name
  21.       
  22.     Next
  23.    
  24.     MsgBox "整理完成"

  25. End Sub
複製代碼
麻煩大大 幫我看看

謝謝  :  )
作者: Hsieh    時間: 2013-12-19 09:54

本帖最後由 Hsieh 於 2013-12-19 09:56 編輯

回復 6# li_hsien
  1. Sub AddObject() '加入PDF檔案物件
  2. Dim A As Range, f$, fd$, fn$
  3. Application.ScreenUpdating = False
  4. For Each A In Range([A2], [A2].End(xlDown))
  5. fd = ThisWorkbook.Path & "\"
  6. f = Dir(fd & A & ".pdf")
  7. fn = fd & f
  8. MyIcon = "C:\Windows\Installer\{AC76BA86-7AD7-1028-7B44-AA1000000001}\PDFFile_8.ico" '我的圖示檔位置
  9. 'MyIcon = "C:\WINDOWS\Installer\{AC76BA86-7AD7-1028-7B44-A93000000001}\PDFFile_8.ico"'你的圖示檔位置
  10. A.Offset(, 1) = ""
  11. If f <> "" Then
  12.     With ActiveSheet.OLEObjects.Add(Filename:= _
  13.         fn, Link:=False, DisplayAsIcon _
  14.         :=True, IconFileName:= _
  15.         MyIcon, _
  16.         IconIndex:=0, IconLabel:=fn)
  17.         .Left = A.Offset(, 1).Left
  18.         .Top = A.Top
  19.         End With
  20.         Else
  21.         A.Offset(, 1) = "找不到檔案" & A & ".pdf"
  22. End If
  23. Next
  24. End Sub
  25. Sub DeletObject() '刪除PDF
  26. Dim Ob As OLEObject
  27. For Each Ob In ActiveSheet.OLEObjects
  28.    If Ob.progID = "AcroExch.Document.7" Then Ob.Delete
  29. Next
  30. MsgBox "整理完成"
  31. End Sub
複製代碼

作者: li_hsien    時間: 2013-12-23 08:18

回復 8# Hsieh

謝謝板大

可以刪除了

想請問一下

If Ob.progID = "AcroExch.Document.7"
是找PDF檔的意思嗎???
.progID主要是指什麼呀


簡潔有力的語法
謝謝  :  )




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