当前位置:  开发笔记 > 编程语言 > 正文

从Excel调用的Access vba函数会返回不同的值

如何解决《从Excel调用的Accessvba函数会返回不同的值》经验,为你挑选了0个好方法。

我的最终目标是生成一个工具来预测字符串的宽度,以便在MS Access 2010中打印报表时可以避免文本溢出.类似CanGrow的选项没用,因为我的报表不能有不可预测的分页符.我无法切断文字.

为此,我WizHook.TwipsFromFont在Access中发现了未记录的函数.在给定字体和其他特征的情况下,它返回字符串的缇宽度.它已被证明是非常有用的起点.基于各种用户生成的指南,我在Access中开发了以下内容:

Public Function TwipsFromFont(ByVal sCaption As String, ByVal sFontName As String, _
                              ByVal lSize As Long, Optional ByVal lWeight As Long = 400, _
                              Optional bItalic As Boolean = False, _
                              Optional bUnderline As Boolean = False, _
                              Optional lCch As Long = 0, _
                              Optional lMaxWidthCch As Long = 0) As Double

    'inspired by http://www.team-moeller.de/?Tipps_und_Tricks:Wizhook-Objekt:TwipsFromFont

    WizHook.Key = 51488399

    Dim ldx As Long
    Dim ldy As Long

    Call WizHook.TwipsFromFont(sFontName, lSize, lWeight, bItalic, bUnderline, lCch, _
                               sCaption, lMaxWidthCch, ldx, ldy)
    'Debug.Print CDbl(ldx)
    TwipsFromFont = CDbl(ldx)
    'TwipsFromFont = 99999
End Function

但是,最终将在Excel中生成的数据最初将在Excel 2010中生成.因此,我想在Excel中调用此函数,因此我可以在创建时检查字符串.为此,我在Excel中开发了以下内容:

Public Function TwipsFromFontXLS() As Double    
     Dim obj As Object
     Set obj = CreateObject("Access.Application")

     With obj
         .OpenCurrentDatabase "C:\MyPath\Jeremy.accdb"
         TwipsFromFontXLS = .Run("TwipsFromFont", sCaption = "Hello World!", _
                                 sFontName = "Arial Black", lSize = 20)
         .Quit
     End With

     Set obj = Nothing
End Function

当我debug.Print TwipsFromFont("Hello World!","Arial Black",20)在Access中运行时,我回到2670.当我debug.Print TwipsFromFontXLS()在Excel中运行时,我回到585.

在Access中,如果我设置TwipsFomFont = 9999,则debug.Print TwipsFromFontXLS()返回9999.

关于我的断开连接的想法?

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有