永发信息网

如何用VBA在新的行里自动写入带日期格式的编号

答案:2  悬赏:0  手机版
解决时间 2021-03-30 13:34
  • 提问者网友:喧嚣尘世
  • 2021-03-30 06:28
如何用VBA在新的行里自动写入带日期格式的编号
最佳答案
  • 五星知识达人网友:街头电车
  • 2021-03-30 07:49
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rng As Range, i%, k%, y$, m$, d$
i = [e65536].End(3).Row
Set rng = Cells(i, 5)
    If rng <> "" And rng.Offset(, -2) = "" Then
        k = Application.CountIf([E:E], rng)
        y = Format(Year(rng), 0)
        m = Format(Month(rng), "00")
        d = Format(Day(rng), "00")
        If k = 1 Then
            Cells(i, 3) = y & m & d & "01"
        Else
            Cells(i, 3) = y & m & d & Format(k, "00")
        End If
    End If
End Sub
 
追问很感谢您的回答,我想请教一下,我要把年只显示为150903,不要20,代码需要怎么修改一下,然后我后续其他单元格里也想用这种代码,比如L例=F*J+K,这种情况下又需要添加什么代码?追答第一个问题
将原代码中的y值改为:
y=right(year(rng),2)第二个问题
在最后一行之前插入以下代码:
cells(i,12)=cells(i,6)*cells(i,10)+cells(i,11)追问第一个问题解决,第二个问题,我是需要求合计,要在(i,13)输入数据后,14列自动计算,而且当数据有改变时,计算结果自动更新,这样的公式有好几个,以后数据也会越来越多,我感觉公式会拖慢运行速度,请问是用VBA会快些还是直接用公式。追答如果是要更新数据,用函数和用VBA是一样的,至少在速度上是。
建议还是用函数进行自动重算。
如果用代码,也得整列走一遍进行重算。
全部回答
  • 1楼网友:酒安江南
  • 2021-03-30 09:23
用触发宏可以完成
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯