我知道这可能是非常好的东西 . 我一直在努力教自己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点 . Dan Wagner已在评论中回复 . 对于第2点,您可能希望改为:
默认情况下,
X = Y
表示Let X = Y
,它不适用于VBA中的对象(正在引用对象而不是在创建后复制对象) .