我有2张纸,第一张纸用于数据库所有产品,第二张纸用于特定产品,我想根据产品名称将数据库中的数据复制到产品表中。
我编写了这段代码,但收到有关产品名称的错误消息
“对象'_Worksheet'的方法'范围'失败。
能否请您查看和编辑我的代码?我真的很感激。
Sub Amigos_Reza()
Dim productname As String
Dim finalrow As Long, i As Long
'clear old data from product table
ShBF.Rows("6:" & ShBF.Rows.Count).ClearContents
finalrow = ShPDE.Cells(Rows.Count, 3).End(xlUp).Row
> productname = ShPDE.Range(i, 6).Value ' I tried to change i by the number of rows for example "5" and still got the same error message
For i = 5 To finalrow
If productname = "Amigoz" & "Reza" Then
ShPDE.Range(Cells(i, 3), Cells(i, 10)).Copy
ShBF.Cells(6, 3).PasteSpecial
End If
Next i
With ShBF
.Select
.Range("A1").Select
End With
End Sub
我应该怎么做才能更改变量以使代码正常工作?
答案 0 :(得分:1)
您会收到错误,因为在此行productname = ShPDE.Range(i, 6).Value
中,您的i
是0
,但行0
不存在,因为行计数以1
开始。
i
不在For
循环之外定义。
请注意,"Amigoz" & "Reza"
与"AmigozReza"
相同,因此您可能表示类似
If productname = "Amigoz" Or productname = "Reza" Then
还请注意,您总是将其粘贴到完全相同的单元格ShBF.Cells(6, 3).PasteSpecial
中,因此,如果循环中找到多个产品名称,则将覆盖目标位置。