VBA Excel:工作簿迭代期间选择范围时出错

VBA Excel:工作簿迭代期间选择范围时出错

我在一个文件夹中有多个文件,其中有“零件编号”一栏,但并非所有文件都位于同一列号中。列表也不一定从同一行开始。

所以我首先查找字符串“零件编号”,然后复制其地址作为我想要复制的范围的起点。

“零件编号”列中的一些项目中有一些空格,所以我无法使用 .End(xlDown) 来搜索最后一行。

因此我使用“数量”列来找到最后一行并复制行号。

我有范围开始的单元格、范围结束的列号和行号。但我收到错误“应用程序定义或对象定义错误”。

宏尚未完成,但我无法继续前进,除非我解决了这个问题。这是我得到的:

Option Explicit

Sub mergeworkbooks()


Dim path As String
Dim filename As String
Dim wbk As Workbook
Dim wks As Worksheet
Dim lastrow As Long
Dim lastcolumn As Long
Dim rangestart As String
Dim lastcol As Long
Dim rangefinish As String
Dim activesht As String


path = "D:\RubenBK\TEST\"
filename = Dir(path)

       Do While filename <> ""

              Set wbk = Workbooks.Open(path & filename)
              For Each wks In Worksheets
                    If Not wks.UsedRange.Find("PART NUMBER", lookat:=xlPart, MatchCase:=False) Is Nothing Then
                    wks.UsedRange.Find("PART NUMBER", lookat:=xlPart, MatchCase:=False).Activate
                    rangestart = wks.UsedRange.Find("PART NUMBER", lookat:=xlPart, MatchCase:=False).Address
                    lastcolumn = wks.UsedRange.Find("PART NUMBER", lookat:=xlPart, MatchCase:=False).Column
                    lastrow = wks.UsedRange.Find("qty", lookat:=xlPart, MatchCase:=False).End(xlDown).row
                    rangefinish = Cells(lastrow, lastcolumn).Address(xlA1)
                    activesht = ActiveSheet.Name

                    'AND HERE IS WHERE I GET THE ERROR, THE Range("rangestart: rangefinish") PART:

                    wbk.Sheets(activesht).Range("rangestart: rangefinish").Copy Destination:=ThisWorkbook.Sheets("Sheet1").Range("A10")
                    End If
                    wbk.Close
              Next
        filename = Dir
        Loop


End Sub

有什么建议吗?

答案1

你的问题是你有你的范围开始范围完成括在引号中。

尝试将它们移到引号外面,它应该可以起作用。

wbk.Sheets(activesht).Range(rangestart & ":" & rangefinish).Copy

相关内容