Vba 循环浏览Word 2013中的Excel工作簿

Vba 循环浏览Word 2013中的Excel工作簿,vba,ms-word,Vba,Ms Word,我正在尝试获取最后使用的工作请求编号,以填充序列中的下一个编号。我已经包括了Excel对象库。在第二个for循环的开头,我遇到了一个类型不匹配错误,但是当我在Excel中运行相同的代码时,它会按预期工作。下面提供了代码片段: Sub GetDRNum() Application.DisplayAlerts = False Dim xl as Excel.Application, Wb As Excel.Workbook, I As integer Dim ReqNum A

我正在尝试获取最后使用的工作请求编号,以填充序列中的下一个编号。我已经包括了Excel对象库。在第二个for循环的开头,我遇到了一个类型不匹配错误,但是当我在Excel中运行相同的代码时,它会按预期工作。下面提供了代码片段:

Sub GetDRNum()
    Application.DisplayAlerts = False
    Dim xl as Excel.Application, Wb As Excel.Workbook, I As integer
    Dim ReqNum As String, lr As long, c As Range, lastReqNum As Long,
    nextReqNum As String, rngStr As String

    Set xl = CreateObject("Excel.Application")

    Set Wb = xl.Workbooks.Open("K:\Desktop\IT Projects\IT Help Request\LTO-IT DR Log(revised).xlsm")

    For i = 1 To Wb.Sheets.Count
        With Wb.Sheets(i)
            If .Name = "Validation" Then
               'skip validation worksheet
                GoTo myNext
            ElseIf .Name = "Submitted" Then
                rngStr = "B6:B"
            ElseIf .Name = "Completed Requests" Then
                rngStr = "B4:B"
            End If
            lr = .Cells(Rows.Count, 2).End(xlUp).Row
            For Each c in WB.Sheets(i).Range(rngStr & lr)
                If IsEmpty(c) Then
                    Exit For
                ElseIf CLng(Right(Trim(c), 4)) > lastReqNum Then
                    lastReqNum = CLng(Right(Trim(c), 4))
                End If
            Next c
        End With
myNext:
    Next i
原因也是这样(把它看作一系列文本)

您需要像定义Excel应用程序一样定义Excel范围

Dim c As Excel.Range
请注意,只有登录用户的Word应用程序已手动添加Excel对象引用时,此Word宏才能工作


i、 e.如果你把这个带到另一台计算机,默认情况下它不会工作。因此,我建议您如果想要可移植性,就使用后期绑定-使它们都成为与
相关的Excel对象

对于I=to,这是一个输入错误吗?请尝试将i=1设置为
。无论如何,
c作为范围
在Word中。您可能需要
c作为Excel.Range
是的,这是一个输入错误,应该是I=1。明天上班时我会试着把它改成Excel。谢谢。把范围改成Excel。range做到了谢谢。如何将此标记为已回答并给予Patrick信任?Patrick需要将其评论内容复制到“回答”中。在开头使用@PatricK向他发表评论,他应该会看到。