簡體   English   中英

VBA合並Excel中的單元格

[英]VBA to merge cells in excel

我有一個如下的excel表格。 將sno列視為Excel編號。 因此,除DateTime以外的所有列都將合並。 我想合並DateTime單元格並想刪除空記錄。 我嘗試了一些公式,但沒有成功。 這可能嗎

我試過下面的公式,但我認為它給出日期時間值的結果很奇怪。

=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. 將日期和時間合並到一個單元格中。 只需完成以下操作即可(單元格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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM