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

下面的代码作用是将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内自动输入时间,等
具体请看图

根据前人的代码改了一下:这个自动触发的代码不用加在你原有代码中
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
温馨提示:内容为网友见解,仅供参考
无其他回答

求Excel表格隔行粘贴然后在后面自动输入时间的VBA代码
根据前人的代码改了一下:这个自动触发的代码不用加在你原有代码中 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 =...

EXCEL第一行如何自动跳出后面行的当下输入时间
vba 代码如下:Private Sub Worksheet_Change(ByVal Target As Range)If Target.Column > 1 And Target.Column < 8 And Target.Row > 2 Then 'Target.Row > 2 注意你的标题在第几列。Cells(Target.Row, 1) = Date + TimeEnd IfEnd Sub ...

设置excel单元格自动填充日期,当在前一个单元格填入东西的时候,就在对...
1.电脑打开Excel表格。2. 在单元格A1中输入任意数字,然后在另一个单元格中输入公式=IF(A1<>"",A1,"")。3.另一个单元格输入公式=IF(A1<>"",A1,""),回车,无论A1输入什么,这个单元格的输入公式都会自动生成zdA1的内容。4.更简单的方法是在另一个单元格中输入=A1来获得A1的内容。

EXCEL中在一个单元格输入内容时在另一个单元格自动输入日期,并且日期...
1、用today()函数 但要设置 迭代计算 由于和其他文件需要的设置不同 有些麻烦 2、用宏,Worksheet_Change事件 3、最简单的是在需要日期的单元格上按住ctrl再按;(即ctrl+;)建议用后2种办法 附上代码 工具-》宏-》 vb编辑器-》双击左侧树型目录的sheet1,然后在右侧代码区复制一下内容。假设A...

使用Excel VBA 实现复制 粘贴 和保存,并自动运行VBA
代码如下,注意代码的位置(详见截图)Private Sub Worksheet_Activate() Application.OnKey "~", "Copy4To500" 'Application.OnKey "{ENTER}", "Copy4To500" '小键盘回车键End SubPrivate Sub Worksheet_Deactivate() Application.OnKey "~" 'Application.OnKey "{ENTER}"End SubSub ...

如何利用excel的vba,自动插入时间?
打开EXCEL,按ALT+F11,进入VB编辑,右击插入模块 请点击输入图片描述 在模块中输入如图语句 请点击输入图片描述 再点击工作表输入如图语句 请点击输入图片描述 关闭编辑页面,进入EXCEL页面,点击视图-宏,选中biao,单击执行 请点击输入图片描述 单击工作表中,任意单元格,就出来了,开始自动跳。请点击...

excel VBA求一个将不规则区域复制,然后有规划地粘贴
在Excel中,VBA代码被用来实现自动化操作。本文将介绍一个利用VBA实现的功能,即按照特定规则复制不规则区域并粘贴至新工作表中。具体代码如下:首先定义一个名为“按钮1_单击”的子程序:Sub 按钮1_单击()设置一个计数器变量i,并将其初值设为0。使用条件判断,若单元格(1,5)不为空,执行以下操作...

EXCEL,VBA功能代码,已经有一段了,想在后面加入,自动打印
PageSetup.PaperSize = 258 n = Application.InputBox(Prompt:="请输入打印页数:",Default:=1,Type:=1)ActiveWindow.SelectedSheets.PrintOut Copies:=n,Collate:=True Range("H1").Select 如果上面出错,请录宏修改后面参数可以,如("Sheet1"),ActivePrinter = "DL-820T",.PaperSize = 258。

EXCEL表格怎么在一个单元输入内容是在其他单元格反应输入的时间
打开你的Excel文件,按“Alt+F11”打开VBA编辑窗口,然后在左侧对应的Sheet上双击,右侧空白处粘贴下面的代码。关闭VBA窗口。Private Sub Worksheet_Change(ByVal Target As Range)On Error Resume NextIf Selection.Count = 1 And Target.Column = Columns("B").Column Then Application.EnableEvents ...

excel某单元格输入固定值则另一单元格显示输入的时间
1、在A2按Ctrl+;(分号)2、用VBA宏代码:按Alt+F11,弹出VBA窗口,把下面代码复制进去(估计直接粘贴过去的代码不会像下面一样换行,那就要按回车调整成下面一样的格式)Private Sub Worksheet_Change(ByVal Target As Range)Dim iRow As Integer Dim iCol As Integer iRow = Target.Row iCol = ...

相似回答