使用VBA将单列分成两列

时间:2014-09-14 14:08:56

标签: excel vba

我正在尝试找出如何编写宏来替换我正在使用的当前Excel公式。我尝试过使用单元格值和偏移量,但我对VBA的了解很少。我需要它做的是像这样转一个列列表:

Cell 1

Cell 2

Cell 3

Cell 4

细胞5

Cell 6

进入这样的两列列表:

细胞1细胞2

细胞3细胞4

细胞5细胞6

我觉得它应该很容易实现,但是我想避免空格并且可能需要循环,因为每次运行宏时列表的长度可能会改变。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

我设法弄清楚如何做到这一点:

Sub splitColumn()
Range("A1").Select
Do
ActiveCell.Offset(1, 0).Select
If IsEmpty(ActiveCell.Offset(-1, 1)) Then
ActiveCell.Offset(-1, 1).Value = ActiveCell
ActiveCell.EntireRow.Delete
End If
Loop Until IsEmpty(ActiveCell)
End Sub

答案 1 :(得分:0)

您可以尝试使用以下代码: 但它有点太长了...我认为它可以帮助你提供一些想法...

Sub Splitting()
Dim i, j, k, l As Integer
RowCount = ThisWorkbook.Sheets("Sheet1").UsedRange.Rows.Count
For i = 1 To RowCount Step 2
For j = 1 To 1
Cells(i, j + 1).Value = Cells(i, j).Value
Cells(i, j + 2).Value = Cells(i + 1, j).Value
Next j
Next i
Call Removeblanks
End Sub

Sub Removeblanks()
RowCount = ThisWorkbook.Sheets("Sheet1").UsedRange.Rows.Count
For i = 1 To RowCount
For j = 1 To 1
If (Cells(i, j + 1).Value = "") Then
Cells(i, j + 1).Delete
Cells(i, j + 2).Delete
End If
Next j
Next i
End Sub