庚申日生在哪月好:excel中VBA的问题

来源:百度文库 编辑:高校问答 时间:2024/05/07 11:11:25
Sub aa()
Range("g1").Select
ActiveCell.FormulaR1C1 = "=today()"
Dim sht As Worksheet
For Each sht In Worksheets
With sht.Range("g1")
.Copy
.PasteSpecial Paste:=xlValues, operation:=xlNone, skipblanks:=False, Transpose:=False
End With
Application.CutCopyMode = False
Next
End Sub
以上是excel宏,运行文档后自动在g1写入=today()函数取系统当前日期值,并且把当前的函数值转变为真值.
现在要求能在鼠标点击的随意单元格实现自动写入函数并取当前函数真值,请问该如何实现?
2.Private Sub Worksheet_Change(ByVal Target As Range)
With Target.Cells(1, 1)
If .Row = 2 And .Column = 1 And Not IsEmpty(.Value) Then
[b2] = Now
End If
End With
End Sub
以上代码在excel表格中,当前单元格A2的数据变动及非空时,在单元格B2填上系统时间,[b2]可以随时变化,那么如何实现在a2值的变化???我试了一下可以改为a3~a?...只要把.row=的值改一下,但我想在c2变动时实现b2填时间该怎么改???谢谢!

'原 Sub aa() 变更如下
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

' 建议限制一下工作表区域, 否则, 点到哪儿都是日期/函数值, 总不是个事儿
Dim rngMyArea As Range
Dim rngIntersect As Range

Set rngMyArea = Range("D10:E20") ' 本例中限制只有点击到 D10:E20 之间时才填充, 请按需要调整

On Error Resume Next

Set rngIntersect = Application.Intersect(ActiveCell, rngMyArea)

If Not rngIntersect Is Nothing Then

ActiveCell.FormulaR1C1 = "=today()" '填写公式
ActiveCell.Value = ActiveCell.Value '数值化处理

End If

End Sub
'以上是excel宏,运行文档后自动在g1写入=today()函数取系统当前日期值,并且把当前的函数值转变为真值.
'现在要求能在鼠标点击的随意单元格实现自动写入函数并取当前函数真值,请问该如何实现?

答: 如上.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim strRefCell As String

strRefCell = "C2" ' 当这个单元格变化时, 改写指定单元格

Application.EnableEvents = False ' 暂时关闭事件响应, 免得发生变更时 Worksheet_Change() 循环调用它自己

With Target.Cells(1, 1)
If .Address(0, 0) = strRefCell And Not IsEmpty(.Value) Then
[b2] = Now
End If
End With

Application.EnableEvents = True

End Sub
'以上代码在excel表格中,当前单元格A2的数据变动及非空时,在单元格B2填上系统时间,
'[b2]可以随时变化,那么如何实现在a2值的变化???我试了一下可以改为a3~a?...只要把.
'row=的值改一下,但我想在c2变动时实现b2填时间该怎么改???谢谢!

答: 如上.