您的位置: 首页 > EXCEL技巧 > ExcelVBA >

用VBA将多行多列区域转为一列

时间:2014-10-12 整理:docExcel.net

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

1.按快捷键Alt+F11,打开VBA编辑器,在右侧代码窗口中粘贴下列代码:

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

上述代码可以将所选择的区域转换到A列中。

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

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

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

在Excel2007中让单元格内容小写转为大写 问题:在Excel2007中让单元格内容小写转为大写
回答:...搞的很不正规。那么,有没有什么办法能将小写内容批量转为大写形式呢?当然有,下面,小编就来告诉大家方法。 案例教程 ①启动Excel2007,打开表格,看到D列里面都是小写形式的,我们需要将其转为大写形式,在单元格输...
在VBA中使用非连续区域 问题:在VBA中使用非连续区域
回答:如果要在VBA中使用非连续区域,可以用类似Range( A1, B2, C3:D10 )的语句,如下例: Sub NonContiguousRange() Dim oRng As Range Set oRng = Range( A1, B2, C3:D10 ) oRng.Value = 100 oRng.Interior.ColorIndex = 2 End Sub 上述代码设置非连续区域A1、B2、C3:D10的值为100...
用VBA选择活动单元格所在的数组区域 问题:用VBA选择活动单元格所在的数组区域
回答:如果在某个区域中输入了相同的数组公式,选择其中某一部分单元格进行修改时,Excel将提示“不能更改数组的某一部分”,这时需要选择全部的数组进行修改。当活动单元格在数组区域中时,可以用下面的VBA代码选择当前整个...
用VBA设置或取消打印区域 问题:用VBA设置或取消打印区域
回答:如果需要用VBA代码在Excel工作表中设置打印区域,可以用下面的方法。 一、设置打印区域 方法一: 用PageSetup.PrintArea属性。代码如下: Sub SetPrintArea() Sheet1.PageSetup.PrintArea = A1:F15 End Sub 上述代码将区域A1:F15设置为打印区域。...
用VBA互换两个单元格或区域中的数据 问题:用VBA互换两个单元格或区域中的数据
回答:有时需要在Excel工作表中互换两个区域中的数据,如果区域相邻可以直接用拖动鼠标并按住Shift键的方法进行互换。而当两区域不相邻且两个区域中的数据量较大时用VBA则较为快捷。例如在互换两列时可以直接单击工作表上方的...
在选定区域中进行数量统计的VBA代码 问题:在选定区域中进行数量统计的VBA代码
回答:如果在Excel中选择了一个或多个区域,用下面的VBA代码可以统计当前工作表所选区域中单元格(或行、列)的数量: 1. 统计选定区域中的单元格数量: Sub CountCellsInSelection() Dim CellsNum As Integer CellsNum = Selection.Count MsgBox 所选区域...
相关知识:

下面内容对您也许有用

      话题:用EXCEL VBA在多行多列区域中随机抽取三个数,写在指定单元格_
      答:函数就可搞定啊 指定单元格=OFFSET($A$1,区域高度*RAND(),区域宽度*RAND(),1,1)$A$1区域左上角 关于Excel表格 公式TRANSPOSE 在excel中如何用VBA对指定单元格
      话题:怎样用vba显示选择区域的第一个单元格的行的数值,列的数值_
      问:选择区域为a,a表示的是一个较大的选择区域,a.rows表示的是选择区域所有的行的
      答:a.rows的编号是从1开始的,a.rows(1)表示的就是a区域的第一行 如果你要获取a区域的第一个单元格的单元格地址 可以这样写:a.rows(1).cells(1).address(0,0)或者:a. excel如何用vba选择当前选定单元 EXCEL VBA 我想选择A列中有数据
      话题:excel 如何用VBA进行多列合并?知道
      问:张三 邮箱1 邮箱2 邮箱3 李四 邮箱1 邮箱2 王五 邮箱1 邮箱2 邮箱3 邮箱4 合并为
      答:Sub abc()Dim R%,i%,j%,n%Dim Arr,Brr,Crr()R=[A65536].End(xlUp).Row ''''原始数据在A行,R取得A行存在数据的最后一行 ReDim Crr(1 To R*10,1 To 1)''''定义 怎样合并两个EXCEL文件 vba Excel VBA 合并一个过程
      话题:请EXCEL专家用Vba帮我做一个任意一列多个单元格的数字怎么才能
      问:请EXCEL专家用Vba帮我做一个任意一列多个单元格的数字怎么才能合并到任意一行
      答:用单元格拆分,把A列里面的数据全部拆分出来。如果是excel2007版本:选择A列,找到 数据-拆分单元格-选择固定列宽-然后把你要分开的位置点上分割线(竖线)- excel中如何用VBA判断一个单元格 EXCEL VBA 取出某一单元格里文本
      话题:EXCEL里多行多列变成多行一列
      问:在EXCEL 数据如下 1 2 3 4 5.M 1 2 3 4 5.M 1 2 3 4 5.M.N行 如何变成如下格式
      答:假设是10列=OFFSET($A$1,(ROW(A10)/10)-1,MOD(ROW(A10),10))下拉复制公式 公式中的10,可以改动为你的实际列数。 EXCEL 多行多列转成多行一列 excel中 如何将一列 变成多行多
      话题:用vba对excel区域排序 第一列相同的比较第二列
      问:要求用vbs函数实现,比较A列,相同的话再比较B列。特殊要求,做不到可以先不做,
      答:描述的不是太清楚啊。你可以做个效果图,然后截图发上来。 excel vba 自动选择数据区域, Excel中如何用VBA排序?
      话题:EXCEL 多行多列转成多行一列
      问:excel中将N行N列矩阵转成N*N行一列,如 1 2 3…4 5 6…7 8 9…转化成 1 2 3.4 5 6
      答:用VBA应该很好实现,用函数应该也可以,用 mod 函数。 EXCEL 多行多列转成多行一列 excel如何把一列换成多行多列
      话题:用vba怎样取excel中的一列在将提取的数据放到另一个sheet的一
      问:比如我要取c4-c48这一列,然后再将它们放到另一个sheet的一行去,求代码,快点。
      答:Dim xSht1 As Worksheet Dim xSht2 As Worksheet Set xSht1=Sheets("sheet1")Set xSht2=Sheets("sheet2")For i=1 To 45 xSht2.Cells(1,i)=xSht1.Cells(i+3,3)' EXCEL vba SHEET1中A1单元格中 excel VBA问题:我在sheet1的中
      话题:Excel多行多列转成一行多列,有跳列
      Excel多行多列转成一行多列,有跳列如果是用VBA那就很简单,但用函数公式的话,中间要断开就相当折腾了…如图1/ppimg src="3452673795" //ppbr//pp转成如图2/pp
      话题:excel vba 多列数据求和,要求用VBA字典。知道
      问:你好,表中有4列内容,A,B,C三列是文本,存在相同项,D列是数据。要求用VBA字典
      答:Sub 多列相同项累计()Dim dic,iStr as string Set dic=CreateObject("Scripting.Dictionary")With ActiveSheet For i=1 To.Range("A65536").End(xlUp).Row iStr=
最新评论