小编Hel*_*uys的帖子

在"with"块内调用一个函数?

是否可以在"with"块内调用函数?我一直收到错误"无效或无条件参考".我如何在"with"语句中引用父对象?谢谢!

Sub Test()
    Set wb = Workbooks.Open(“C:\Book1.xls", True, True)

    With wb.Worksheets("Sheet1")
        lRow = LastRow()
        msgbox(lRow)
    End With

    With wb.Worksheets("Sheet2")
        lRow = LastRow()
        msgbox(lRow)
    End With

    wb.Close False
End Sub

Function LastRow()
    LastRow =.Cells.Find(What:="*", _
            After:=Range("A1"), _
            LookAt:=xlPart, _
            LookIn:=xlFormulas, _
            SearchOrder:=xlByRows, _
            SearchDirection:=xlPrevious, _
            MatchCase:=False).Row
End Function
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba

4
推荐指数
1
解决办法
82
查看次数

晚绑定全局变量?

我正在使用VBA for Excel.根据我的理解,全局变量需要在任何潜艇之外声明.这是所有潜艇都可以访问的唯一方式.

与此同时,我想进行后期绑定以引用"Microsoft Scripting Runtime"库(为了使用字典对象类型),以便最终用户不必自己完成.

我的代码如下:

On Error Resume Next
strGUID = "{420B2830-E718-11CF-893D-00A0C9054228}"
ThisWorkbook.VBProject.References.AddFromGuid GUID:=strGUID, Major:=1, Minor:=0

Dim Dic1 As Object
Set Dic1 = CreateObject("Scripting.Dictionary")
Dim Dic2 As Object
Set Dic2 = CreateObject("Scripting.Dictionary")
Run Code Online (Sandbox Code Playgroud)

如果我想用后期绑定声明全局字典对象怎么办?看起来VBA不允许我在subs之外放置任何代码(声明除外).

如何在不需要最终用户自己配置库引用的情况下声明全局字典对象?我要不要以下?

Dim Dic1 As Object
Dim Dic2 As Object

Sub Prog1()
    On Error Resume Next
    strGUID = "{420B2830-E718-11CF-893D-00A0C9054228}"
    ThisWorkbook.VBProject.References.AddFromGuid GUID:=strGUID, Major:=1, Minor:=0

    Set Dic1 = CreateObject("Scripting.Dictionary")
    Set Dic2 = CreateObject("Scripting.Dictionary")
End Sub
Run Code Online (Sandbox Code Playgroud)

vba access-vba

3
推荐指数
1
解决办法
204
查看次数

标签 统计

vba ×2

access-vba ×1

excel ×1

excel-vba ×1