VBA复制范围从另一个工作表

我知道这可能是非常有趣的东西。 我一直在试图教自己的VBA的一个项目,我正在工作,并可以使用一点指导。 将确保信用正确的答案的人。

我目前知道基本的C ++

我正在试图build立一个macros来做到这一点:

  1. 从表格顶部开始(A2) – 取这个值
  2. 将其与ActiveCell的值进行比较
  3. 迭代A列,并find一个唯一的值…
  4. 请记住,单元格
  5. 移动3列
  6. 按照超链接指向新工作表中的范围
  7. 在步骤4中返回到单元格
  8. 插入复制的范围并向下移动工作表的其余部分
  9. 重复下面的表格(我还没有试图实现这个部分)

这是我迄今为止写的:

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 

我得到两个错误:

  1. 溢出错误CellValue = Range("A2).Value
  2. 运行时错误'91' – 对象variables或块variables未设置@ SaveLine = ActiveCell

任何指导(甚至部分)表示赞赏。

对于第一点, 丹·瓦格纳已经回复了评论。 对于第2点,你可能想写:

 Set SaveLine = ActiveCell 

默认情况下, X = Y表示Let X = Y ,这不适用于VBA中的对象(对象被创build后被引用而不是被复制)。