首页 > 解决方案 > 错误:无效或不合格 - VBA 复制粘贴

问题描述

我正在尝试将一列数据从一张表复制到一张空表中,其中只包含一个大列表的匹配“代码”......一旦完成,我希望删除所有重复项或根本不复制它们.

A)有人可以帮助弄清楚为什么我在设置“Ticker”时遇到错误

B)删除重复项最有效的方法是什么?

Dim BottomRow As Long
Dim TopRow As Long
Dim col As Integer
Dim Ticker As String
Dim RngY As Range

TopRow = 6

For col = 4 To 3 + (2 * 26) Step 2

Ticker = .Cell(TopRow - 1, col - 3).Value
BottomRow = .Cells(.Rows.Count, col).End(xlUp).row
.Range(.Cells(TopRow, col), .Cells(BottomRow, col)).Copy

Worksheets("TSX-CleanDate").Activate
RngY = Worksheets("Source").Range("3A:3XFD").Find(Ticker, lookat:=xlPart)

.Cells(4, RngY).Paste

Next

标签: excelvbacompiler-errorscopy-paste

解决方案


设置时出现错误的原因Ticker是因为您没有在代码中引用任何工作表。

Ticker = .Cell(TopRow - 1, col - 3).Value

.Cell部分仅在您的代码位于With块中时才有效,但由于不是,您需要像这样完全限定工作表(另外,您应该使用Cells而不是Cell):

Ticker = Sheets("Sheet1").Cells(TopRow - 1, col - 3).Value

至于 B 部分,请查看此答案


推荐阅读