2010年10月21日 星期四

Excel 關閉XLS檔案出現的未清除剪貼簿資訊

使用前必須確定已引用 MS Forms 2.0 Object Library。
在引用項目點選[瀏覽] 目錄 windows\system32\fm20.dll
即會出現 MS Forms 2.0 Object Library。

若是在刪除頁籤時,出現要被刪除的頁籤有資料時的確認對話框
請用以下Code即可,無須使用 剪貼簿的方式刪除
Application.DisplayAlerts = False

資料來源
http://gb.twbts.com/index.php/topic,1878.0.html


Sub 取得剪貼簿內容()
 Dim data As New DataObject
 data.GetFromClipboard
 Range("A1") = data.GetText(1)
End Sub

Sub 寫入剪貼簿()
 Dim data As New DataObject
 chars = [A1].Characters(3, 5).Text '取得A1部份內容
 data.SetText chars '寫入DataObject
 data.PutInClipboard '寫入剪貼簿
 [B1].Select
 ActiveSheet.Paste '再貼到B1
End Sub

Sub 清除剪貼簿內容()
 Dim data As New DataObject
 Set data = New DataObject
 data.SetText ""
 data.PutInClipboard
End Sub


運用的範例Code

Fn = GetFileTailer(.FoundFiles(i))

Workbooks.Open Filename:=.FoundFiles(i)

'MsgBox GetFileTailer(.FoundFiles(i))
'要複製的「來源」範圍
'---------------------------------------------------------------
Windows(Fn).Activate
Sheets("復原_Sheet1").Select
Range("A1:P65535").Select

'故意使用這個指令,以避免出現 其他檔案的拷貝區域,然後出現對話框
Selection.Copy

'要被複製的「目的」範圍
'---------------------------------------------------------------
Windows(ThisWorkbook.Name).Activate
Sheets("Load").Select
Range("A1").Select

ActiveSheet.Paste



Dim DATA As New DataObject
Set DATA = New DataObject
DATA.SetText ""
DATA.PutInClipboard


'關閉
Workbooks(Fn).Close False, Fn

沒有留言:

張貼留言

追蹤者