VBA复制范围来自另一张表

时间:2014-05-30 16:37:56

标签: excel vba excel-vba

我知道这可能是很好的东西。我一直在努力为VBA教我正在进行的项目,并且可以使用一些指导。确保将这个人归功于正确答案。

我目前知道基本的c ++

我正在尝试构建一个执行此操作的宏:

  1. 从表格顶部开始(A2) - 取该值
  2. 将其与ActiveCell的值进行比较
  3. 在找到一个唯一值后,迭代A列......
  4. 记住Cell
  5. 移动3列
  6. 关注指向新工作表中范围的超链接
  7. 返回步骤4中的单元格
  8. 插入复制的范围并将其余部分向下移动
  9. 重复下表(我还没有试图实现这一部分)
  10. 这是我到目前为止所写的内容:

    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. 运行时错误&#39; 91&#39; - 对象变量或With块变量未设置@ SaveLine = ActiveCell
    3. 任何指导(甚至部分)都表示赞赏。

1 个答案:

答案 0 :(得分:1)

对于第1点。Dan Wagner已在评论中回复。对于第2点,您可能希望改为编写:

Set SaveLine = ActiveCell

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

相关问题