Excel:需要macros – 2列数据成为1列“彼此”

你好,先让我说声谢谢!

我使用Excel捕捉用户要求和说明。 然后,我将这些信息清理干净并粘贴到演示文档中,应用格式化,粘贴到Powerpoint等。总共可以完成100行。 我正在寻找的是一个macros,我可以应用于数据一旦粘贴到Excel中。 数据将是文本,非数字

我有一个macros,我用它插入一个空行作为其他行。 然后我手动执行一切(macros显示如下)。

我正在寻找的是一个插入一个空行的macros,然后向下偏移第2列。 然后将第1列粘贴到第2列(而不是将空白单元格复制到第2列中已有的数据上)。

我粘贴了一个链接到我正在寻找的图像。 我也试图在下面显示(数字是第1列,字母是第2列)。

2列到1列 – 所需的结果

1 A
2 B
3 C

结果我想要:

1
一个
2

3
C

我目前的“空白行”macros:

Sub insertrow() ' insertrow Macro Application.ScreenUpdating = True Dim count As Integer Dim X As Integer For count = 1 To 300 If ActiveCell.Value <> "" Then ActiveCell.Offset(1, 0).Select Range(ActiveCell, ActiveCell.Offset(0, 0)).EntireRow.Insert ActiveCell.Offset(1, 0).Select For X = 1 To 1 Next X Else ActiveCell.Offset(1, 0).Range("a1").Select End If Next count End Sub 

以下是不需要插入空白行就可以做到的。 它还会计算具有2列的表单中最后一行的内容,以便在循环结束时不需要进行硬编码。

这些评论应该有助于你理解每一步发生的事情。 然后,您可以修改这个来处理您的特定工作簿。 有很多方法可以解决这个问题。 我select将旋转的结果放在第二张纸上。

 Sub PivotTwoColumnsIntoOne() Dim wb As Workbook Dim src As Worksheet Dim tgt As Worksheet Dim rng As Range Dim cell As Range Dim lastRow As Long Dim targetRow As Long Set wb = ThisWorkbook ' set our source worksheet Set src = wb.Sheets("Sheet1") ' set our target sheet (where the single column will be) Set tgt = wb.Sheets("Sheet2") ' get the last row on our target sheet lastRow = src.Range("A" & src.Rows.Count).End(xlUp).Row ' set the starting point for our target sheet targetRow = 1 Set rng = src.Range("A1:A" & lastRow) For Each cell In rng With tgt.Range("A" & targetRow) ' get the value from the first column .Value = cell.Value ' get the value from the second column .Offset(1).Value = cell.Offset(, 1).Value .HorizontalAlignment = xlLeft End With targetRow = targetRow + 2 Next cell End Sub 

这应该可以工作,但是您必须根据您的确切布局和需求进行一些调整。

 Sub mergeColumns() Dim mergedData As Variant ReDim mergedData(1 To 600) dataToProcess = Range("A2:B301") For i = 1 To 300 mergedData(i * 2 - 1) = dataToProcess(i, 1) mergedData(i * 2) = dataToProcess(i, 2) Next i Range("B2:B601") = WorksheetFunction.Transpose(mergedData) End Sub