我在尝试使用此代码时遇到问题。如果没有(ByValue Target as Range)部分以及ActiveCell.Value,它确实可以正常工作,但是如果包含这些部分,我会收到错误。
我有很多其他功能取决于此,并希望看到我能解决的问题。
非常感谢!
Private Sub CT(ByVal Target As Range)
'
' CT Macro
'
Sheets("Outbound Tactics").Select
If ActiveCell.Value = "Yes" Then
ActiveCell.Select
Range(Selection, ActiveCell.Offset(0, 23)).Select
Selection.Copy
Sheets("Completed Tactics").Select
ActiveSheet.Range("C4").Select
Selection.End(xlDown).Offset(1, 0).Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Application.CutCopyMode = False
Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
Sheets("Outbound Tactics").Select
ActiveCell.Select
Range(Selection, ActiveCell.Offset(0, 23)).Select
Selection.Delete
End If
End Sub
PS:根据我的理解,开头部分是为了让宏连续运行而不被调用。
答案 0 :(得分:2)
看到你实际上没有在你的代码中使用Target
对象,我假设你从某个地方复制/粘贴它,并且实际上并不确定它是什么。
简单回答:将其删除。
Private Sub CT()
'// your code here
End Sub
扩展答案:将其合并到您的代码中。
Private Sub CT(ByVal Target As Range)
If Target.Value = "Yes" Then
With Sheets("Completed Tactics").Range("C4").End(xlDown).Offset(1, 0)
.Resize(1, 24).Value = Target.Resize(1, 24).Value
.Offset(1, 0).EntireRow.Insert CopyOrigin:=xlFormatFromLeftOrAbove
End With
Target.Resize(1, 24).Delete
End If
End Sub