我想選定的單元格複製到另一個工作表,但我總是收到錯誤消息:或者參數錯誤的無效的屬性賦值如果範圍錯誤的參數個數或無效的屬性賦值
此代碼檢查「細胞(i,20)「小於或大於」細胞(i,4)「10%。如果不是,則刪除該行,如果是,則應將所選單元格複製到另一個從第48行開始的表格。
也許有人可以指出,我在這裏做錯了什麼?這裏是我的代碼看起來是這樣的:
Sub CopyHighLow()
Sheets("ProductionHighLow").Select
i = 2
j = 48
produced = 0
While Cells(i, 1) <> "" Or Cells(i + 1, 1) <> ""
produced = Cells(i, 20)
ordered = Cells(i, 4)
If Cells(i, 20) > Cells(i, 4) * 0.9 And Cells(i, 20) < Cells(i, 4) * 1.1 Then
Cells(i, 22).Delete Shift:=xlUp
i = i - 1
Else
Range(Cells(i, 1), Cells(i, 2), Cells(i, 3), Cells(i, 4), Cells(i, 20)).Select
Selection.Copy Destination:=Sheets("Rytinis").Range(Cells(j, 1), Cells(j, 2), Cells(j, 3), Cells(j, 4), Cells(j, 5))
j = j + 1
End If
i = i + 1
Wend
End Sub
更新在這裏正在修改的版本:
Sub CopyHighLow()
Sheets("ProductionHighLow").Select
i = 2
j = 48
produced = 0
While Cells(i, 1) <> "" Or Cells(i + 1, 1) <> ""
produced = Cells(i, 20)
ordered = Cells(i, 4)
If Cells(i, 20) > Cells(i, 4) * 0.9 And Cells(i, 20) < Cells(i, 4) * 1.1 Then
Cells(i, 22).Delete Shift:=xlUp
i = i - 1
Else
Set RangeUnionCopy = Union(Cells(i, 1), Cells(i, 2), Cells(i, 3), Cells(i, 4), Cells(i, 20))
Set RangeUnionPaste = Union(Cells(j, 1), Cells(j, 2), Cells(j, 3), Cells(j, 4), Cells(j, 5))
RangeUnionCopy.Copy Destination:=Sheets("Rytinis").Range(RangeUnionPaste.Address)
j = j + 1
End If
i = i + 1
Wend
End Sub
它打破了哪條線?在錯誤出現時點擊調試,看看在vba編輯器中哪一行是暫停的 – Tom
這是兩個調用的問題:'Range(Cells(),Cells(),Cells()...)'Range '方法最多隻能接受兩個參數(一個起始單元格和一個結束單元格) – tigeravatar
聽起來好像你想使用''而不是'Range'來解決這個問題 – tigeravatar