Vba 1004使用usedrange时出错

Vba 1004使用usedrange时出错,vba,excel,Vba,Excel,我尝试使用一个工作簿将值从一个工作簿复制到另一个工作簿(在某些行中有一些空白,并且在空白处复制也是很好的),但是我得到了1004个错误: Sub ActiveInactiveVendors() Dim ActiveWkb As Workbook, Wkb As Workbook, InactiveWkb As Workbook Dim ActiveWkst As Worksheet, Wkst As Worksheet, InactiveWkst As Worksheet Dim aCell A

我尝试使用一个工作簿将值从一个工作簿复制到另一个工作簿(在某些行中有一些空白,并且在空白处复制也是很好的),但是我得到了1004个错误:

Sub ActiveInactiveVendors()
Dim ActiveWkb As Workbook, Wkb As Workbook, InactiveWkb As Workbook
Dim ActiveWkst As Worksheet, Wkst As Worksheet, InactiveWkst As Worksheet
Dim aCell As Range
Dim targetRng As Range


Set ActiveWkb = Workbooks.Open("C:\Users\clara\Desktop\active vendors.xlsx")
Set Wkb = ThisWorkbook
Set Wkst = Wkb.Sheets("Vendors")
Set ActiveWkst = ActiveWkb.Worksheets("aqlc7da48e7")

'set column A starting from A7
Set targetRng = Wkst.Range("A7" & Wkst.Rows.Count)
'get the values starting from a32 to the last row used and set it in wkst
targetRng.Value = ActiveWkst.Range("A32"  & ActiveWkst.UsedRange.Rows.Count).Value
End Sub
我感谢任何反馈!谢谢你这句话:

Set targetRng = Wkst.Range("A7" & Wkst.Rows.Count)
这是不对的。您得到的不是A7:A1048576,而是两者的串联。因此,它正在寻找不存在的A71048576

然后,在设置值时,应使用类似大小的范围

Sub ActiveInactiveVendors()
Dim ActiveWkb As Workbook, Wkb As Workbook, InactiveWkb As Workbook
Dim ActiveWkst As Worksheet, Wkst As Worksheet, InactiveWkst As Worksheet
Dim aCell As Range
Dim targetRng As Range, origRng As Range


Set ActiveWkb = Workbooks.Open("C:\Users\clara\Desktop\active vendors.xlsx")
Set Wkb = ThisWorkbook
Set Wkst = Wkb.Sheets("Vendors")
Set ActiveWkst = ActiveWkb.Worksheets("aqlc7da48e7")

'set column A starting from A7
Set origRng = ActiveWkst.Range("A32", ActiveWkst.Cells(ActiveWkst.Rows.Count, 1).End(xlUp))
Set targetRng = Wkst.Range("A7", Wkst.Cells(origRng.Rows.Count + 6, 1))
'get the values starting from a32 to the last row used and set it in wkst
targetRng.Value = origRng.Value
End Sub

谢谢-代码终于运行了,它复制了activewkst到wkst的A列中的所有单元格,但在复制的最后一个单元格之后,有一个单元格显示#NA;在wkst的1000个单元格中,它复制了完全相同的单元格以及b列中的信息。你知道为什么会这样吗?不,不应该这样。请尝试清除工作表,然后重试该代码。我确实调整了上面的代码来处理
N/A
,然后检查原始工作表中的数据以确保它不会重复。你说得对-我只是需要再次清除工作表。我真傻!我只是好奇把+7改成+6是怎么清除了#NA的?另外,如果我想从targetRng停止的位置开始复制另一个工作表中的单元格,我该如何操作?Set-origRng=InactiveWkst.Range(“A23”,InactiveWkst.cells(InactiveWkst.Rows.Count,1).End(xlUp))Set-targetRng=Wkst.Range(“A”&Rows.Count).End(xlUp).Offset(1)targetRng.Value=origRng.Value是我所认为的目标范围太大了一个单元格,因此通过改变大小,它消除了N/A。第二个问题是一个新问题,他应该得到一篇新文章,但要研究如何找到最后一个包含数据的单元格。