我有一个宏启动并运行,它对一个数据透视表进行排序,从表中复制一系列单元格,然后将它们粘贴到第二个工作表中。说实话,我现在和VBA在一起,我对这项壮举感到非常满意。然而,我有更多我希望它做的事情。
我想要发生的是:我将数据粘贴到A列的第一个空单元格中。当发生这种情况时,我希望宏进入今天的日期(最好以使其成为永久性的方式,不会明天改为明天的日期)在C栏的同一行和文本“IV020”到D栏。
在Sheet9中,我有以下代码(主要来自这里的帖子):
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim aCell As Range
On Error GoTo Whoa
Application.EnableEvents = False
If Not Intersect(Target, Columns(1)) Is Nothing Then
If Not Target.Columns.Count > 1 Then
For Each aCell In Target
If aCell.Value <> "" And aCell.Offset(0, 2).NumberFormat = "" Then
aCell.Offset(0, 2).Value = "=TODAY()"
aCell.Offset(0, 3).Value = "IV020"
End If
Next
Else
MsgBox "Please paste in 1 Column"
End If
End If
Letscontinue:
Application.EnableEvents = True
Exit Sub
Whoa:
MsgBox Err.Description
Resume Letscontinue
End Sub
然而,当事物被粘贴或手动输入A列时,没有任何反应。
答案 0 :(得分:0)
你不能拥有一个零长度字符串的Range.NumberFormat property。即使您尝试手动设置一个,它也会将自身重置为常规。
hash_behavior=merge
我做了一些小改动;你必须决定你想对.NumberFormat问题做些什么。