我正在尝试将文本行移动到Excel中的一个列中,该列位于新工作表中。转置功能运行良好,但一次只能移动一行。我想得到一个宏,将多个列中的数千行数据转换为一列。请参阅下面的示例(我已经用分号分隔了行中的每一列)。提前感谢您的帮助。
行:
Avila P, 2005, CHEM ENG J; Barbero BP, 2008, CHEM ENG J; Crookes R, 2004, SERIES MAT SUS APLIC
Duran FG, 2009, APPL CATAL B-ENVIRON; Amini SK, 2004, CHEM PHYS LETT
Ali MH, 2005, SYNTHESIS-STUTTGART; Arya P, 2001, CURR OPIN CHEM BIOL; Balunas MJ, 2008, J NAT PROD
柱:
Avila P, 2005, CHEM ENG J
Barbero BP, 2008, CHEM ENG J
Crookes R, 2004, SERIES MAT SUS APLIC
Duran FG, 2009, APPL CATAL B-ENVIRON
Amini SK, 2004, CHEM PHYS LETT
Ali MH, 2005, SYNTHESIS-STUTTGART
Arya P, 2001, CURR OPIN CHEM BIOL
Balunas MJ, 2008, J NAT PROD
答案 0 :(得分:2)
如果我正确地阅读了这个问题,我认为以下代码可行:
Dim c as Range, Rng as Range, cDest as Range
Dim x as long
Dim shOrig as worksheet, shDest as WorkSheet
Set shOrig = Sheets("NameOfSheetWithData")
Set shDest = Sheets("NameOfSheetToPasteTo")
Set Rng = shOrig.Range("A1:Z100") ' Set to range where data is held
Set cDest = shDest.Range("A1") ' Cell to start pasting data into
x = 0
For Each c In Rng
If c.Value <> "" Then ' Skip blank cells
cDest.Offset(x, 0).Value = c.Value
x = x + 1
End If
Next c
答案 1 :(得分:1)
Excel上有一个名为“Text to Columns”的功能,可用于解决此类问题。
选择数据,单击“文本到列”(在“数据”选项卡中),选择“分隔”,然后单击“下一步”,在这种情况下选择“分号”作为分隔符。
再次单击“下一步”时,对话框将显示结果的外观。每个集合将存储在同一行的不同列中。
默认情况下,原始数据将替换为第一列,除非您在对话框中更改目标。
单击“完成”以查看结果。
答案 2 :(得分:0)
使用Excel对象模型的新功能编写宏的标准技术,是一个不熟悉的,是:
答案 3 :(得分:0)
如果我理解正确,OP可以采用略微“正面”的方法,并且可以通过Word解决方案:
1
(单独的文本应设置为选项卡)。