请教一下,Excel宏,怎么用代码实现这个功能呀?
运行下面代码,能出现第一行标题行,但数据出现不了 展开
使用宏需要一定的基础,完全给出不用调试的代码需要给出原表的全屏图。
下面是根据帖子图片编写的程序代码:
注意,程序在模块里面,程序中的表名sheet1、sheet2需要自行修改,如果是在不同的EXCEL文件中,还应该写为workbooks("book1").sheets("sheett1")这样的格式。
下面是测试数据:
下面的测试数据运行产生的测试结果:
程序只产生A2开始的结果,标题行请自行添加。
最后强调,如果实际数据与帖子图片格式不同,例如数据开始行3,例如指标个数和列,那么代码需要适当的修改,希望自行理解代码的情况调整,代码文本如下:
Option Explicit
Sub 转换格式()
Dim arr1, arr2, i&, j&, n&
arr1 = Sheets("sheet1").UsedRange 'sheet1是原始数据表名,请自行修改
ReDim arr2(1 To UBound(arr1) * 5, 1 To 6)
For i = 3 To UBound(arr1) '原表正式数据从第3行开始,请检查确认
For j = 4 To 8
If arr1(i, j) <> "" Then
n = n + 1
arr2(n, 1) = arr1(i, 1)
arr2(n, 2) = arr1(i, 1)
arr2(n, 3) = arr1(i, 1)
arr2(n, 4) = arr1(2, j)
arr2(n, 5) = arr1(i, j)
arr2(n, 6) = arr1(i, 9)
End If
Next j
Next i
Sheets("sheet2").Range("a2").Resize(n, 6) = arr2 'sheet2是结果表名,请自行修改
End Sub
新术语:“宏”,指一系列EXCEL能够执行的VBA语句。
以下将要录制的宏非常简单,只是改变单元格颜色。请完成如下步骤: 1)打开新工作簿,确认其他工作簿已经关闭。 2)选择A1单元格。调出“常用”工具栏。 3)选择“工具”—“宏”—“录制新宏”。
4)输入“改变颜色”作为宏名替换默认宏名,单击确定,注意,此时状态栏中显示“录制”,特别是“停止录制”工具栏也显示出来。替换默认宏名主要是便于分别这些宏。 ★ 宏名最多可为255个字符,并且必须以字母开始。其中可用的字符包括:字母、数字和下划线。宏名中不允许出现空格。通常用下划线代表空格。
5)选择“格式”的“单元格”,选择“图案”选项中的红色,单击“确定”。 6)单击“停止录制”工具栏按钮,结束宏录制过程。 ※ 如果“停止录制”工具栏开始并未出现,请选择“工具”—“宏”—“停止录制”。
录制完一个宏后就可以执行它了。
1.4 执行宏
当执行一个宏时,EXCEL按照宏语句执行的情况就像VBA代码在对EXCEL进行“遥控”。但VBA的“遥控”不仅能使操作变得简便,还能使你获得一些使用EXCEL标准命令所无法实现的功能。而且,一旦熟悉了EXCEL的“遥控”,你都会奇怪自己在没有这些“遥控”的情况下,到底是怎么熬过来的。要执行刚才录制的宏,可以按以下步骤进行: 1)选择任何一个单元格,比如A3。
2)选择“工具”—“宏”—“宏”,显示“宏”对话框。
3)选择“改变颜色”,选择“执行”,则A3单元格的颜色变为红色。试着选择其它单元格和几个单元格组成的区域,然后再执行宏,以便加深印象。
1.5 查看录制的代码
到底是什么在控制EXCEL的运行呢?你可能有些疑惑.好,让我们看看VBA的语句吧. 1)选择“工具”—“宏”—“宏”,显示“宏”对话框。 2)单击列表中的“改变颜色”,选择“编辑”按钮。 此时,会打开VBA的编辑器窗口(VBE)。关于该编辑器,以后再详细说明,先将注意力集中到显示的代码上。代码如下:(日期和姓名会有不同)
Sub 改变颜色() '
' 改变颜色 Macro
' xw 记录的宏 2000-6-10 ' '
With Selection.Interior
.ColorIndex = 3 .Pattern = xlSolid
.PatternColorIndex = xlAutomatic End With End Sub
将来会十分熟悉这种代码,虽然现在它们看上去像一种奇怪的外语。学习VBA或编程语言在某种程度上比较像在学习一种外语。
让你发表,又没反应,哎。。。