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