我可以在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,等等。

谢谢

join一个双分隔符,然后分割一个。

 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。

我认为你可以分两步分解你的解决scheme:

第一 – 像现在一样继续进行转置;

第二个 – 创build一个循环将内容移动到下一行。 就像是:

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