求Excel表格隔行粘贴然后在后面自动输入时间的VBA代码

下面的代码作用是将H列的内容粘贴到K列、M列、O列、等,(隔行粘贴,一直到255列),复制完成后删除H列和他后面的I列中的内容,本代码从第二行开始实行。现在我想在该代码中... 下面的代码作用是将H列的内容粘贴到K列、M列、O列、等,(隔行粘贴,一直到255列),复制完成后删除H列和他后面的I列中的内容,本代码从第二行开始实行。现在我想在该代码中再增加一点功能,就是当K列,M列、0列等(隔行) 中间填人数据时,在他们的后面自动记录填写该数据的时间,(该打个比方,就是如果检测到K2内有数据,在L2内就自动输入时间,如检测到M5内有数据,N5内自动输入时间,等等,如图)
时间一旦写人,就不会变,除非人工修改
Public Sub iSub()
Dim r&, r0&, c%, c0%, c1%

r0 = 2 '开始的行位置
c0 = Range("H1").Column '需要被复制的列位置设置在H列
c1 = Range("K1").Column '粘贴的列位置,最初设置在k列

For r = r0 To Cells(65536, c0).End(xlUp).Row
c = Cells(r, 256).End(xlToLeft).Column '256表示从左边开始到可以最多粘贴到第256-1列,本代码先检查第256列有无数据,没有往前检测,直到有数据,停止,该数据可以根据需要修改成需要的数据
If c < c1 Then c = c1 Else c = c + 2 'c+2表示每隔2行粘贴,如果是c+1表示每隔一行开始粘贴
Cells(r, c).Value = Cells(r, c0).Value
Cells(r, c0).Resize(1, 2).ClearContents '这代码的意思是删除被复制列,和他后面的一列本例是H列和他后面的I列。
Next
End Sub

请问该代码应当如何修改问题补充:

现在我想在该代码中再增加一点功能,就是当K列,M列、0列等(隔行) 中间填人数据时,在他们的后面自动记录填写该数据的时间,该时间一旦写人,就不会变,除非人工修改
这句话说的有点模糊,打个比方,就是如果检测到K2内有数据,L2内自动输入时间,检测到M5内有数据,N5内自动输入时间,等
具体请看图
展开
 我来答
贵州遵义发郎中
2011-05-11 · TA获得超过3474个赞
知道大有可为答主
回答量:2865
采纳率:33%
帮助的人:1858万
展开全部
根据前人的代码改了一下:这个自动触发的代码不用加在你原有代码中
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cel As Range
For Each cel In Target

If cel.Column Mod 2 = 1 And cel.Column > 10 Then '当输入内容的单元格大于J列,且为奇数列时后一单元格写时间
If cel = "" Then
cel.Offset(0, 1).Clear
Else
If cel.Offset(0, 1) = "" Then cel.Offset(0, 1) = Date & " " & Time
End If
End If
Next cel
End Sub
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式