【发布时间】:2018-10-24 14:46:44
【问题描述】:
我正在尝试遍历一组列,其中包含大小不同且有大量重复的日期列表。我想从 TSX-DeltaFind 复制列值并将它们粘贴到相应“Ticker”下的 TSX-CleanDate 中,并在完成后删除所有重复项。
A) 为什么粘贴行出现语法错误?
B)粘贴后如何删除所有重复项?
Sub CleanDate()
Dim BottomRow As Long
Dim BottomRow2 As Long
Dim TopRow As Long
Dim col As Integer
Dim Ticker As String
Dim RngY As Range
Dim originalRng As Integer
With ThisWorkbook.Worksheets("TSX-DeltaFind")
col = 4
TopRow = 6
For col = 4 To 3 + (2 * 26) Step 2
Ticker = .Cells(TopRow - 1, col - 2).Value
BottomRow = .Cells(.Rows.Count, col).End(xlUp).row
originalRng = BottomRow - TopRow
Worksheets("TSX-DeltaFind").Range(.Cells(TopRow, col), .Cells(BottomRow, col)).Copy
Worksheets("TSX-CleanDate").Activate
With ThisWorkbook.Worksheets("TSX-CleanDate")
Set RngY = Worksheets("TSX-CleanDate").Range("A3:XDF3").Find(Ticker, lookat:=xlPart)
BottomRow2 = .Cells(.Rows.Count, RngY.Column).End(xlUp).row
Worksheets("TSX-CleanDate").Range(BottomRow2 + 1, RngY.Column + 2:originalRng + 4,RngY.Column + 2 ).PasteValues
End With
Worksheets("TSX-DeltaFind").Activate
Next
End With
End Sub
【问题讨论】:
-
如果所有这些变量都是数字,则粘贴目标相当于
Range(2, 3:5,3 ),这是无效的语法。我想你需要Cells。
标签: excel vba syntax copy-paste