您好,先让我说声谢谢!
我使用Excel来捕获用户需求和描述。然后我将这些信息清理干净并粘贴到演示文档中,应用格式化,粘贴到Powerpoint等等。总共可以完成100行。我正在寻找的是一个宏,我可以将数据粘贴到Excel后应用于数据。数据将是文本,非数字
我有一个宏用于在每隔一行插入一个空行。然后我手动完成其他所有操作(如下所示)。
我正在寻找的是一个插入空白行的宏,然后将第2列偏移1行。然后将第1列粘贴到第2列(不要将空白单元格复制到第2列中已存在的数据上)。
我已粘贴到我正在寻找的图像的链接。我也尝试在下面显示(数字是第1列,字母是第2列)。
2 columns to 1 column - desired result
1 A
2 B
3 C
我想要的结果:
1
一个
2
乙
3
Ç
我目前的“空行”宏:
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
答案 0 :(得分:2)
这应该可行,但您必须根据您的确切布局和需求进行一些调整。
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
答案 1 :(得分:0)
以下功能可以在不插入空白行的情况下完成。它还计算具有2列的工作表上的最后一行,以便在循环结束时不需要硬编码。
评论应该可以帮助您了解每一步的发生情况。然后,您可以修改它以使用您的特定工作簿。你可以通过很多方式解决这个问题。我选择将透视结果放在第二张纸上。
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