VBA从另一张图纸复制范围

VBA从另一张图纸复制范围,vba,excel,Vba,Excel,我知道这可能是一件很有趣的事情。我一直在努力为我正在从事的一个项目自学VBA,可能需要一些指导。将确保正确答案归功于此人 我现在知道基本的c语言++ 我正在尝试构建一个宏来执行以下操作: 从图纸顶部开始(A2)-取该值 将其与ActiveCell的值进行比较 向下迭代A列,一旦找到唯一值 还记得那个牢房吗 移过3列 跟随超链接到新图纸中的范围 返回步骤4中的单元格 插入复制的范围并向下移动图纸的其余部分 重复下表(我还没有尝试实现这个部分) 以下是我到目前为止所写的内容: Sub Test()

我知道这可能是一件很有趣的事情。我一直在努力为我正在从事的一个项目自学VBA,可能需要一些指导。将确保正确答案归功于此人

我现在知道基本的c语言++

我正在尝试构建一个宏来执行以下操作:

  • 从图纸顶部开始(A2)-取该值
  • 将其与ActiveCell的值进行比较
  • 向下迭代A列,一旦找到唯一值
  • 还记得那个牢房吗
  • 移过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
    
    子测试()
    将单元格值设置为整数
    范围(“A2”)。选择
    CellValue=范围(“A2”).值
    而Selection.Value ActiveCell.Value
    '如果CellValue=ActiveCell.Value,则
    ActiveCell.Offset(1,0)。选择
    温德
    将存储行变暗为范围
    SaveLine=ActiveCell
    ActiveCell=ActiveCell.Offset(0,3)
    ActiveCell.Hyperlinks(1).遵循NewWindow:=False,AddHistory:=True
    选择,复制
    ActiveCell=SaveLine
    选择。插入移位:=xlDown
    端接头
    
    我有两个错误:

  • 溢出错误@
    CellValue=Range(“A2).Value
  • 运行时错误“91”-未设置对象变量或带块变量@
    SaveLine=ActiveCell
  • 感谢您提供任何指导(即使是部分指导)。

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

    Set SaveLine = ActiveCell
    

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

    从顶部开始,您将需要阅读
    Long
    数据类型,它可以处理比
    Integer
    大得多的数字。以下是有关此主题的MSDN链接: