几个实用的Excel 宏代码


来源:高中英语教学交流
发布时间:2013-03-22 10:41:00
查看次数:

内容提要:   有时需要在Excel中将某个多行多列的区域转换到一列中,下面的VBA代码可以实现这个目的。

    1、Excel 宏 多行多列 多行一列

   有时需要在Excel中将某个多行多列的区域转换到一列中,下面的VBA代码可以实现这个目的。

1.按快捷键Alt+F8,在Macro name中填写宏名RangeToOneCol,之后单击Create。粘贴下列代码,此代码可以将所选择的区域转换到A列中

Sub RangeToOneCol()
Dim TheRng, TempArr
Dim i As Integer, j As Integer, elemCount As Integer
On Error GoTo line1
Range("a:a").ClearContents
If Selection.Cells.Count = 1 Then
  Range("a1") = Selection
Else
  TheRng = Selection
  elemCount = UBound(TheRng, 1) * UBound(TheRng, 2)
  ReDim TempArr(1 To elemCount, 1 To 1)
  For i = 1 To UBound(TheRng, 1)
    For j = 1 To UBound(TheRng, 2)
      TempArr((i - 1) * UBound(TheRng, 2) + j, 1) = TheRng(i, j)
    Next
  Next
  Range("a1:a" & elemCount) = TempArr
End If
line1:
End Sub

2.关闭VBA编辑器,返回Excel工作表界面

3.如果A列包含数据,先在工作表的最左侧插入一列,以便放置转换后的数据

4.选择需要转换的区域,按Alt+F8,打开“宏”对话框,选择上述代码中的宏名“RangeToOneCol”运行代码

第1页 第2页 第3页