Foxtable(狐表)用户栏目专家坐堂 → 如何将这段vba代码改为ft可运行?


  共有2625人关注过本帖树形打印复制链接

主题:如何将这段vba代码改为ft可运行?

帅哥哟,离线,有人找我吗?
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110784 积分:563852 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/1/3 22:31:00 [显示全部帖子]

试试

Public Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function CloseClipboard Lib "user32" () As Long
Public  Declare Function GetClipboardData Lib "user32" (ByVal wFormat As Long) As Long
Public  Declare Function EmptyClipboard Lib "user32" () As Long
'// CreateMetaFileA DeleteEnhMetaFile
Public Declare Function CopyEnhMetaFileA Lib "gdi32" (ByVal hENHSrc As Long, ByVal lpszFile As String) As Long
Public Declare Function DeleteEnhMetaFile Lib "gdi32" (ByVal hemf As Long) As Long

Public Function fnSaveAsEMF(strFileName As String) As Boolean
Dim CF_ENHMETAFILE As Long = 14
Dim ReturnValue As Long
    OpenClipboard(0)
    ReturnValue = CopyEnhMetaFileA(GetClipboardData(CF_ENHMETAFILE), strFileName)
    EmptyClipboard
    CloseClipboard
    '// Release resources to it eg You can now delete it if required
    '// or write over it. This is a MUST
    DeleteEnhMetaFile(ReturnValue)
    return (ReturnValue <> 0)
End Function

Sub SaveIt()
    ActiveSheet.ChartObjects("图表 1").Activate
    ActiveChart.ChartArea.Select
    Selection.Copy
    If fnSaveAsEMF("C:\Users\wuyong\Desktop\emf\Excel001.emf") Then
        MsgBox( "Saved")
    Else
        MsgBox( "NOT Saved!")
    End If
End Sub

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110784 积分:563852 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/1/4 8:47:00 [显示全部帖子]

估计剪贴板没有数据,或者不是预期的格式,百度了一下,先使用IsClipboardFormatAvailable判断一下:https://www.cnblogs.com/lancidie/archive/2011/03/18/1988148.html

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110784 积分:563852 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/1/4 11:40:00 [显示全部帖子]

这个我也不懂了,百度吧

 回到顶部