VBA在Excel中合并单元格

我有一个像下面的Excel表。 将Excel的编号看作是sno列。 因此除了DateTime之外的所有列都被合并。 我想要合并date时间单元格,并希望删除空logging。 我尝试了几个没有成功的公式。 这可能吗

我试着下面的公式,但它给我们奇怪的结果becozdate时间值我认为。

=INDEX($A$1:$A$<ENDROW>,(B1-1)*2+1,1)&" "&INDEX($A$1:$A$<ENDROW>,(B1-1)*2+2,1) 

我有这个:

 ╔═════╦════════╦══════════╦═════════╦═════════════╗ ║ sno ║ Action ║ DateTime ║ User ID ║ Name ║ ╠═════╬════════╬══════════╬═════════╬═════════════╣ ║ 1 ║ INSERT ║ 8-Nov-13 ║ childsk ║ Keri Childs ║ ║ 2 ║ ║ 16:06:43 ║ ║ ║ ║ 3 ║ INSERT ║ 8-Nov-13 ║ childsk ║ Keri Childs ║ ║ 4 ║ ║ 16:04:27 ║ ║ ║ ╚═════╩════════╩══════════╩═════════╩═════════════╝ 

预期产出:

 ╔═════╦════════╦═══════════════════╦═════════╦═════════════╗ ║ sno ║ Action ║ DateTime ║ User ID ║ Name ║ ╠═════╬════════╬═══════════════════╬═════════╬═════════════╣ ║ 1 ║ INSERT ║ 8-Nov-13 16:06:43 ║ childsk ║ Keri Childs ║ ║ 2 ║ INSERT ║ 8-Nov-13 16:04:27 ║ childsk ║ Keri Childs ║ ╚═════╩════════╩═══════════════════╩═════════╩═════════════╝ 

你有两个任务要执行。

  1. 将date和时间合并到单个单元格中。 这只是简单地完成(单元格C1包含在B1中使用的公式(如文本)。) 在这里输入图像说明

    并将B1格式化为自定义 – > d-mmm-yy hh:mm:ss。

    然后,您可以将结果(作为值)和格式复制到目标列。

  2. 删除多余的行。 您可以使用下面的代码(确保您将重复次数从10更改为任何您需要的)。

 Sub del_skip_rows_repeat_caller() Call del_skip_rows_repeat(1, 10) End Sub Sub del_skip_rows_repeat(nrows As Integer, nrep As Integer) Dim i As Integer For i = 1 To nrep Call del_skip_rows(nrows) Next i End Sub Sub del_skip_rows(nrows As Integer) Dim rng As Range Set rng = Range(Selection, Selection.Offset(nrows - 1, 0)).EntireRow 'rng.Select rng.Delete Shift:=xlUp Set rng = Selection.Offset(1, 0).Cells(1, 1) rng.Select End Sub