VBA复制范围从另一个工作表
我知道这可能是非常有趣的东西。 我一直在试图教自己的VBA的一个项目,我正在工作,并可以使用一点指导。 将确保信用正确的答案的人。
我目前知道基本的C ++
我正在试图build立一个macros来做到这一点:
- 从表格顶部开始(A2) – 取这个值
- 将其与ActiveCell的值进行比较
- 迭代A列,并find一个唯一的值…
- 请记住,单元格
- 移动3列
- 按照超链接指向新工作表中的范围
- 在步骤4中返回到单元格
- 插入复制的范围并向下移动工作表的其余部分
- 重复下面的表格(我还没有试图实现这个部分)
这是我迄今为止写的:
Sub Test() Dim CellValue As Integer Range("A2").Select CellValue = Range("A2").Value While Selection.Value <> ActiveCell.Value ' If CellValue = ActiveCell.Value Then ActiveCell.Offset(1, 0).Select Wend Dim SaveLine As Range SaveLine = ActiveCell ActiveCell = ActiveCell.Offset(0, 3) ActiveCell.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True Selection.Copy ActiveCell = SaveLine Selection.Insert Shift:=xlDown End Sub
我得到两个错误:
- 溢出错误
CellValue = Range("A2).Value
- 运行时错误'91' – 对象variables或块variables未设置@
SaveLine = ActiveCell
任何指导(甚至部分)表示赞赏。
对于第一点, 丹·瓦格纳已经回复了评论。 对于第2点,你可能想写:
Set SaveLine = ActiveCell
默认情况下, X = Y
表示Let X = Y
,这不适用于VBA中的对象(对象被创build后被引用而不是被复制)。