簡體   English   中英

我可以將列轉置為Excel VBA中包含空格的行嗎?

[英]Can I transpose a column to a row WITH spaces in Excel VBA?

我目前有一個excel項目,我用它來整理大部分數據,以便將數據導入特定程序。 我目前在一個模塊中使用這段代碼,並在其他模塊中的其他地方調用它。

Sub CopyTransposed(rngSource As Range, rngTargetCell As Range)

    rngTargetCell.Resize(rngSource.Columns.Count, rngSource.Rows.Count).Value = _

    Application.WorksheetFunction.Transpose(rngSource)

End Sub
-------------------------------------------------------------------------------------------
Sub Trans()

    CopyTransposed [A1:A4], [C1]

End Sub

現在我只需要弄清楚如何在每個單元格之間添加空格。 因此A1復制到C1,A2復制到C3,依此類推。

謝謝

用雙分隔符加入它們然后分成一個。

Sub CopyTransposed(rngSource As Range, rngTargetCell As Range)

    Dim str As String, vals As Variant
    str = Join(Application.Transpose(rngSource), "||")
    vals = Split(str, "|")

    rngTargetCell.Resize(1, UBound(vals) + 1) = vals

End Sub

Sub Trans()

    CopyTransposed [A1:A4], [C1]

End Sub

不確定是否總是需要將行放入列中,但是可以使用相同的列將行添加到具有if語句的行中,該語句是否為rngSource.Columns.Count> rngSource.Rows.Count。

我認為您可以分兩個階段分解您的解決方案:

1 - 繼續像現在一樣進行轉置;

第二步 - 創建一個循環以將內容移動到下一行。 就像是:

      for i = 1 to 8
          range("C" & i).EntireRow.Insert
          i = i + 1
      next

暫無
暫無

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

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