vb acess为excel使用范围内的每个范围创建

时间:2017-07-31 09:24:31

标签: vba excel-vba ms-access access-vba excel

我写了这段代码但收到错误:

Function getFileRange(ByVal objFilePath As String) As String
    Dim xlApp As Object
    Dim xlWb As Object
    Dim xlSheet As Object
    Dim rng As Object
    Dim usedRng As Variant

    Set xlApp = CreateObject("Excel.Application")
    Set xlfile = xlApp.Workbooks.Open(objFilePath)
    Set xlSheet = xlfile.Sheets(1)

    usedRng = xlSheet.usedRange.Address
    getFileRange = Replace(usedRng, "$", "")

    For Each rng In usedRng
        If rng.MergeCells Then
            With rng.MergeArea
                .UnMerge
                .Formula = rng.Formula
            End With
        End If
    Next


    Debug.Print getFileRange

    Workbooks.Close True

    Set xlApp = Nothing
    Set xlfile = Nothing
    Set xlSheet = Nothing

End Function

如何在excel中将rng定义为范围?有关在vb访问中转换excel vb的任何参考资料吗? (我不知道你怎么说,我需要知道很多关于在访问中创建excel应用程序的反之亦然)

1 个答案:

答案 0 :(得分:1)

您将其定义为Dim rng as Range。 然后你应该设置它。 usedRng也是如此。范围的属性AddressString,您应该引用它。通常,在您的代码中它看起来像这样:

Dim rng       As Range
Dim usedRng   As Range
set usedRng = xlSheet.usedRange

然后它可以工作。

如果您错过Microsoft Excel N Object Library,也可以使用延迟绑定。那么像这样的事情可以做到这一点:

Dim rng     As Object
Dim usedRng As Object

Set usedRng = xlSheet.usedRange