第1个回答 2008-01-04
注意:由于没有看到你表格的具体情况。
所以如果执行代码后,删除你不想删除内容
请不要保存。重新打开窗口即可。
按ALT+F11进入VBE窗口
插入模块
输入以下代码:
Sub dsr()
Dim arr, arr1()
arr = Range("a1").CurrentRegion
x = UBound(arr)
y = UBound(arr, 2)
ReDim arr1(1 To x * y, 1 To 1)
For yy = 1 To y
For xx = 1 To x
If arr(xx, yy) <> "" Then
k = k + 1
arr1(k, 1) = arr(xx, yy)
End If
Next xx
Next yy
Cells = ""
Range("a1").Resize(k, 1) = arr1
End Sub
完成后按F5键。本回答被提问者采纳
第2个回答 2008-01-04
我假设你的数据是从A列开始的,几十个列是连续的,并且是从第一行开始的.在宏代码框中输入下列代码,运行
Sub aaaa()
Dim a As Integer
Dim b As Integer
Dim c As Integer
c = Range("a1").CurrentRegion.Columns.Count
For x = 1 To c - 1
a = WorksheetFunction.CountA(Range("a:a"))
b = WorksheetFunction.CountA(Range("b:b"))
Range("b1:" & "b" & b).Select
Selection.Cut
Range("a" & a + 1).Select
ActiveSheet.Paste
Range("b:b").Delete
Next
End Sub