首页 文章

VBA复制范围来自另一张表

提问于
浏览
0

我知道这可能是非常好的东西 . 我一直在努力教自己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

我有两个错误:

  • 溢出错误@ CellValue = Range("A2).Value

  • 运行时错误'91' - 对象变量或未设置块变量@ SaveLine = ActiveCell

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

1 回答

  • 1

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

    Set SaveLine = ActiveCell
    

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

相关问题