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


  共有2109人关注过本帖平板打印复制链接

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

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


加好友 发短信
等级:三尾狐 帖子:623 积分:6825 威望:0 精华:0 注册:2013/12/17 1:00:00
如何将这段vba代码改为ft可运行?  发帖心情 Post By:2021/1/3 22:14:00 [只看该作者]

Option Explicit
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
'// CreateMetaFileA DeleteEnhMetaFile
Private Declare Function CopyEnhMetaFileA Lib "gdi32" (ByVal hENHSrc As Long, ByVal lpszFile As String) As Long
Private Declare Function DeleteEnhMetaFile Lib "gdi32" (ByVal hemf As Long) As Long

Public Function fnSaveAsEMF(strFileName As String) As Boolean
Const 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
    fnSaveAsEMF = (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", vbInformation
    Else
        MsgBox "NOT Saved!", vbCritical
    End If
End Sub
在vba上试验成功,可以将图表(chart)存为emf格式文件,但将此段代码放在ft全局代码中,运行会出现闪退,请教如何修改?

 回到顶部