嗨我想創建一個宏,它有助於調整兩個時間序列。所以我必須讓這兩個時間序列具有相同的日期,假設如果沒有該日期的數據,則取前一天的價格。範圍副本VBA 400錯誤
我的所有代碼都可以工作,除了範圍拷貝部分。它不會將任何東西粘貼到插入的空白單元格中。有誰知道這是爲什麼?有問題的線是最後的Range線。我也嘗試了.Copy(Destination)方法,但它也沒有工作。錯誤處理程序說範圍類的副本失敗。
Sub Adjustdate()
Dim lastrow As Long
Dim n As Integer
Dim read As Double
Dim adju As Double
Dim entry As Long
Dim comp As Long
lastrow = Cells(Rows.Count, "A").End(xlUp).Value
n = 2
While comp <> lastrow
entry = Cells(n, "A")
comp = Cells(n, "T")
read = Cells(n, "B")
adju = Cells(n, "C")
If (entry < comp) Then
Cells(n, "A").Insert Shift:=xlDown
Cells(n, "B").Insert Shift:=xlDown
Cells(n, "C").Insert Shift:=xlDown
Cells(n, "B") = read
Cells(n, "C") = adju
Cells(n, "A") = comp
End If
If (entry > comp) Then
Cells(n, "T").Insert Shift:=xlDown
Cells(n, "T") = entry
Cells(n, "T").Interior.ColorIndex = 8
Range(Cells(n, "U"), Cells(n, "AH")).Insert Shift:=xlDown
Range(Cells((n + 1), "U"), Cells((n + 1), "AH")) = (Range(Cells(n, "U"), Cells(n, "AH")))
End If
n = n + 1
Wend
End Sub
Screenshot of data 這裏的400錯誤後的代碼的截圖(它跑,直到它插入新行的一部分。)
您的數據以升序排列?或者按降序排列? (可能會粘貼顯示前十行的截圖,主要是我們可以看到列A和列T中的內容。) – YowE3K
您的「副本」正在複製行「n」中的值(剛剛設置爲空單元格通過前一行代碼,將現有值向下推一行)到行'n + 1'。您可能試圖將行'n - 1'複製到行'n'。 – YowE3K
也許它與你的問題有關:在Range(Cells(n,「U」),Cells(n,「AH」))。Insert Shift:= xlDown'語句,從列U到AH的行'n' (Range(Cells(n,「U」)),Cells(n,「AH」)))指向空單元格,Range(單元格((n + 1) ),「U」),單元格((n + 1),「AH」))=(範圍(單元格(n,「U」),單元格(n,「AH」)))語句將複製空單元格值進入單元格中填充值爲'n'行的單元格 – user3598756