使用VBA将数据从一个Excel工作簿复制到另一个工作簿

使用VBA将数据从一个Excel工作簿复制到另一个工作簿,vba,excel,Vba,Excel,我正在尝试从一个excel工作簿复制特定数据,并将其放置在我创建的另一个工作簿中。我尝试了以下代码的许多变体,但都没有成功,我一直在这一行中遇到“运行时错误'1004':应用程序定义的或对象定义的错误'”。我一直遇到的问题是“wb.Sheets(“Sheet1”).Range(“A6”).Value=ThisWorkbook.Sheets(“Sheet1”).Range(c.Offset(0,8)).Value”-我已经包含了上下文的完整代码 Private Sub Go_Click() Wit

我正在尝试从一个excel工作簿复制特定数据,并将其放置在我创建的另一个工作簿中。我尝试了以下代码的许多变体,但都没有成功,我一直在这一行中遇到“运行时错误'1004':应用程序定义的或对象定义的错误'”。我一直遇到的问题是“wb.Sheets(“Sheet1”).Range(“A6”).Value=ThisWorkbook.Sheets(“Sheet1”).Range(c.Offset(0,8)).Value”-我已经包含了上下文的完整代码

Private Sub Go_Click()
With Worksheets(1).Range("A:A")
'Search from user input for the entry with that last name
Set c = .Find(LNE.Text, , xlValues, xlWhole)
  If Not c Is Nothing Then
       Dim wb As Workbook
       Set wb = Workbooks.Add("\Documents\Custom Office Templates\KFS_Template.xltm")

       StartDate = c.Offset(0, 3)
       EndDate = c.Offset(0, 4)
       If DateDiff("d", SDE.Text, StartDate) > -1 Then
            If DateDiff("d", EndDate, EDE.Text) > -1 Then
                    Set q = Range("A1")
                    wb.Sheets("Sheet1").Range("A6").Value = ThisWorkbook.Sheets("Sheet1").Range(c.Offset(0, 8)).Value
            End If
       End If
   End If
End With
End Sub

尝试将C设置为range,我认为问题在于您正在使用range对象调用range对象

Private Sub Go_Click()
Dim c As Range
With Worksheets(1).Range("A:A")
'Search from user input for the entry with that last name
Set c = .Find(LNE.Text, , xlValues, xlWhole)
  If Not c Is Nothing Then
       Dim wb As Workbook
       Set wb = Workbooks.Add("\Documents\Custom Office Templates\KFS_Template.xltm")

       StartDate = c.Offset(0, 3)
       EndDate = c.Offset(0, 4)
       If DateDiff("d", SDE.Text, StartDate) > -1 Then
            If DateDiff("d", EndDate, EDE.Text) > -1 Then
                    Set q = Range("A1")
                    wb.Sheets("Sheet1").Range("A6").Value = c.Offset(0, 8).Value
            End If
       End If
   End If
End With

End Sub

您应该使用阵列来复制大数据,它更快、更安全。另外,请告诉我您是否知道使用数组,如果不知道,我可以为您提供一些代码我将猜测,因为您在工作表(1)中使用了
。请尝试使用此工作簿执行
。工作表(1).
,然后查看是否可以。@lont我以前从未使用过数组,您能给我举个例子吗?我已经试着自学VBA好几个星期了。@BruceWayne错误不在那一行,但无论如何谢谢你!我将尝试将其更改为更干净的代码。对于
LNE.text
LNE
从何而来?我已经尝试过了,实际上,我在那一行遇到了“下标超出范围”错误。