我在Excel VBA中相當新,並且非常感謝這方面的任何幫助。複製一個範圍並將其在同一張紙上向下移動一行
該工作簿包含來自範圍A5:AZ1000的數據(新客戶信息以新行輸入,但某些單元可能爲空,具體取決於案例的性質)。當用戶輸入新的客戶信息(開始一個新行)時,我希望現有數據(範圍A5:AZ1000)向下移動一行,空白行出現在範圍A5:AZ:5中。我希望用戶能夠點擊一個宏「新客戶端」發生這種情況。
應該指出,這是一個共享工作簿,因此我不能讓宏添加一個新行。
這裏是代碼我的工作:
Sub shiftdown()
' shiftdown Macro
Dim lastRow As Long
Dim lastColumn As Long
Dim rngToCopy As Range
Dim rng As Range
Set rng = ActiveSheet.Range("A1").Value
lastColumn = ActiveSheet.Cells(4, Columns.Count).End(xlToLeft).Column
lastRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
If rng > 0 Then
ActiveSheet.Range("A5" & lastRow).Select
Selection.Copy
PasteSelection.Offset(1, 0).PasteSpecial xlPasteValues
'Error Object Required
End If
End Sub
將'PasteSelection.'更改爲'Selection'。但你應該學會避免使用選擇見:http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros –
你也可以做到這一行內IF:'ActiveSheet.Range(「A5」&lastRow).Offset(1,0).Value = ActiveSheet.Range(「A5」&lastRow).Value'並避免剪貼板。 –
你爲什麼刪除你的代碼? – YowE3K