excel - 错误:无效或不合格 - 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
解决方案
设置时出现错误的原因Ticker
是因为您没有在代码中引用任何工作表。
Ticker = .Cell(TopRow - 1, col - 3).Value
该.Cell
部分仅在您的代码位于With
块中时才有效,但由于不是,您需要像这样完全限定工作表(另外,您应该使用Cells
而不是Cell
):
Ticker = Sheets("Sheet1").Cells(TopRow - 1, col - 3).Value
至于 B 部分,请查看此答案。
推荐阅读
- html - 当给 html cellspacing 等于 0 表格从下一页开始打印时
- git - 如何在 TFS tf.exe 命令行中查看变更集中文件与之前的变更集的差异?
- javascript - Incorrect hidden form field value being submitted to servlet
- batch-file - 为什么 PATH 的值没有保留在 if 块中
- excel - 循环收集动态列上的标签和公式
- firebase - 火库;安全规则模拟通过但实际上失败(uid 作为映射键)
- python - 在 python 中与 Windows CMD 交互
- netsuite - 自由标记错误:左手操作数需要一个数字,但这已评估为 sequence + has+ string
- c# - 如何覆盖!= 运算符?
- php - 如何使用 optgroup 将类别和子类别放在选择框上,只需使用 PHP 进行一次查询?