Vba 循环浏览Word 2013中的Excel工作簿
我正在尝试获取最后使用的工作请求编号,以填充序列中的下一个编号。我已经包括了Excel对象库。在第二个for循环的开头,我遇到了一个类型不匹配错误,但是当我在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
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向他发表评论,他应该会看到。