设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

清空剪切板的VBA命令

2015-4-18 09:08| 发布者: tmtony| 查看: 4176| 评论: 9|原作者: mclly2000|来自: Office中国论坛

摘要: Private Sub Command5_Click() Me.Child0.SetFocus DoCmd.RunCommand acCmdSelectAllRecords DoCmd.RunCommand acCmdCopy Dim obj As Object Set obj = CreateObject(excel.application) obj.workbooks.Add o ...
Private Sub Command5_Click()
Me.Child0.SetFocus
DoCmd.RunCommand acCmdSelectAllRecords
DoCmd.RunCommand acCmdCopy
Dim obj As Object
Set obj = CreateObject("excel.application")
obj.workbooks.Add
obj.Visible = True
SendKeys "^v"
obj.Visible = True
End Sub


上面这段语句如何让数据复制到Excel表格之后将剪切板清空
请各位老师帮帮忙,谢谢
问题补充:我在执行上述语句之后(导出2万多条数据至EXCEL表),点击该主窗体的退出命令后好长时间才关闭主窗体,不知道为什么,是剪切板有很多数据的原因吗?应该如何改变这种情况呢?

有老师说是我导出后没有释放,我不知道应该处理,请大家看看附件,谢谢

或者不使用这种语句导出数据,我要是直接使用宏导出数据,发现导出的是空白;如果这个子窗体的记录集在窗体加载时赋值,用宏可以导出数据。 关闭主窗体也很快,但是用这种语句导出数据关闭主窗体就很慢,郁闷啊,请高手赐教...

test.rar
QQ截图20121225173738.jpg

Cuxun版主提供的解决代码:成功解决上面问题
模块级API代码:
Private Const GHND = &H42
Private Const CF_TEXT = 1
Private Const CF_ANSIONLY = &H400&
Private Const CF_APPLY = &H200&
Private Const CF_BITMAP = 2
Private Const CF_DIB = 8
Private Const CF_DIF = 5
Private Const CF_DSPBITMAP = &H82
Private Const CF_DSPENHMETAFILE = &H8E
Private Const CF_DSPMETAFILEPICT = &H83
Private Const CF_DSPTEXT = &H81
Private Const CF_EFFECTS = &H100&
Private Const CF_ENABLEHOOK = &H8&
Private Const CF_ENABLETEMPLATE = &H10&
Private Const CF_ENABLETEMPLATEHANDLE = &H20&
Private Const CF_ENHMETAFILE = 14
Private Const CF_FIXEDPITCHONLY = &H4000&
Private Const CF_FORCEFONTEXIST = &H10000
Private Const CF_GDIOBJFIRST = &H300
Private Const CF_GDIOBJLAST = &H3FF
Private Const CF_HDROP = 15
Private Const CF_INITTOLOGFONTSTRUCT = &H40&
Private Const CF_LIMITSIZE = &H2000&
Private Const CF_LOCALE = 16
Private Const CF_MAX = 17
Private Const CF_METAFILEPICT = 3
Private Const CF_NOFACESEL = &H80000
Private Const CF_NOSCRIPTSEL = &H800000
Private Const CF_NOSIMULATIONS = &H1000&
Private Const CF_NOSIZESEL = &H200000
Private Const CF_NOSTYLESEL = &H100000
Private Const CF_NOVECTORFONTS = &H800&
Private Const CF_NOOEMFONTS = CF_NOVECTORFONTS
Private Const CF_NOVERTFONTS = &H1000000
Private Const CF_OEMTEXT = 7
Private Const CF_OWNERDISPLAY = &H80
Private Const CF_PALETTE = 9
Private Const CF_PENDATA = 10
Private Const CF_PRINTERFONTS = &H2
Private Const CF_PRIVATEFIRST = &H200
Private Const CF_PRIVATELAST = &H2FF
Private Const CF_RIFF = 11
Private Const CF_SCALABLEONLY = &H20000
Private Const CF_SCREENFONTS = &H1
Private Const CF_BOTH = (CF_SCREENFONTS Or CF_PRINTERFONTS)
Private Const CF_SCRIPTSONLY = CF_ANSIONLY
Private Const CF_SELECTSCRIPT = &H400000
Private Const CF_SHOWHELP = &H4&
Private Const CF_SYLK = 4
Private Const CF_TIFF = 6
Private Const CF_TTONLY = &H40000
Private Const CF_UNICODETEXT = 13
Private Const CF_USESTYLE = &H80&
Private Const CF_WAVE = 12
Private Const CF_WYSIWYG = &H8000
Private Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags&, ByVal dwBytes As Long) As Long
Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long) As Long
Private Declare Function GlobalSize Lib "kernel32" (ByVal hMem As Long) As Long
Private Declare Function lstrcpy Lib "kernel32" (ByVal lpString1 As Any, ByVal lpString2 As Any) As Long
Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As String) As Long
Private Declare Function GlobalUnlock Lib "kernel32" (ByVal hMem As Long) As Long
Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function CloseClipboard Lib "user32" () As Long
Private Declare Function GetClipboardData Lib "user32" (ByVal wFormat As Long) As Long
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Function SetClipboardData Lib "user32" (ByVal wFormat As Long, ByVal hMem As Long) As Long
Public Function ClearClipBoard()
    OpenClipboard 0&
    EmptyClipboard
    CloseClipboard
End Function

相关阅读

发表评论

最新评论

引用 tmtony 2012-12-25 16:10
要用API了,搜索 VB 清 剪切板
引用 tmtony 2012-12-25 16:11
http://www.office-cn.net/forum.p ... =%BC%F4%C7%D0%B0%E5
引用 mclly2000 2012-12-25 16:24
tmtony 发表于 2012-12-25 16:11
http://www.office-cn.net/forum.php?mod=viewthread&tid=18507&highlight=%BC%F4%C7%D0%B0%E5

vba中不能使用API
引用 tmtony 2012-12-25 16:49
你是access 还是 Excel
access可使用api
引用 mclly2000 2012-12-25 17:31
本帖最后由 mclly2000 于 2012-12-25 17:34 编辑
tmtony 发表于 2012-12-25 16:49
你是access 还是 Excel
access可使用api


继续请教王站长,我传了附件,里面有代码,请老师看看,是不是没有释放的原因{:soso_e100:}
引用 huangli0356 2012-12-26 08:51
受用啦..
引用 mclly2000 2012-12-26 08:52
cuxun 发表于 2012-12-25 17:45
模块级API代码:
Private Const GHND = &H42
Private Const CF_TEXT = 1

感谢大肚老师,放在关闭窗体按钮的单击事件可以实现,非常感激
引用 ak47ok 2015-11-28 13:15
每次回帖、谢谢!辛苦了。

查看全部评论(9)

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-19 21:01 , Processed in 0.093897 second(s), 25 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回顶部