用宏实现表格自动生成?要实现这种宏的自动运行可以使用Auto_Open过程启动和事件启动这两种方式。以下是深空游戏小编为您带来的关于让Excel工作簿中宏自动运行,希望对您有所帮助。让Excel工作簿中宏自动运行1、启动Excel并打开包含宏的工作表,那么,用宏实现表格自动生成?一起来了解一下吧。
分类:电脑/网络猜悔 >> 程序设计 >>毁核 其他编程语言
问题描述:
请看我的Bolg里有图片描述,一目了然.blog.sina/u/***********即点击按钮生成5条insert语句,用分号阁开.
知道思路的说下思路,知纤兆掘道细节的最好说详细点啦,先谢谢!
解析:
Const MAX_NUM_ROW = 5000
Const PATH_OUTPUT_ROW = 1
Const PATH_OUTPUT_COL = 2
Const FILE_OUTPUT_ROW = 2
Const FILE_OUTPUT_COL = 2
'Template Info
Const ENTRP_CDE_COL = 1
Const RPT_TMPLT_ID_COL = 2
Const RPT_FMT_TYP_COL = 3
Const FNCTN_ID_COL = 4
Const TMPLT_PATH_COL = 5
Const BNDL_PATH_COL = 6
Const RPT_NAM_GEN_CLASS_COL = 7
Const RPT_DATASOURCE_CLASS_COL = 8
Const ACK_RPT_TMPLT_ID_COL = 9
Const REC_VER_NUM_COL = 10
Const INIT_TIME_COL = 11
Const LAST_UPD_TIME_COL = 12
Const LAST_UPD_BY_COL = 13
Const START_ROW = 5
Private Type Tmplt
ENTRP_CDE As String
RPT_TMPLT_ID As String
RPT_FMT_TYP As String
FNCTN_ID As String
TMPLT_PATH As String
BNDL_PATH As String
RPT_NAM_GEN_CLASS As String
RPT_DATASOURCE_CLASS As String
ACK_RPT_TMPLT_ID As String
REC_VER_NUM As String
INIT_TIME As String
LAST_UPD_TIME As String
LAST_UPD_BY As String
End Type
Dim noOfTmplts As Integer
Dim TmpltArray(MAX_NUM_ROW) As Tmplt
Private Sub CommandButton1_Click()
generateSQL
End Sub
Private Sub generateSQL()
makedir
initData
writeToFile
End Sub
Private Sub makedir()
On Error Resume Next
'Make Directory
MkDir Sheet18.Cells(PATH_OUTPUT_ROW, PATH_OUTPUT_COL)
End Sub
Private Sub initData()
Erase TmpltArray
'Erase TmpltRoleArray
'noOfUserRoles = 0
noOfTmplts = 0
Dim j As Integer
'Lookup all fields
For j = START_ROW To MAX_NUM_ROW
If Sheet18.Cells(j, RPT_TMPLT_ID_COL) = "" Then
Exit For
End If
'Set Template
TmpltArray(noOfTmplts).ENTRP_CDE = Sheet18.Cells(j, ENTRP_CDE_COL)
TmpltArray(noOfTmplts).RPT_TMPLT_ID = Sheet18.Cells(j, RPT_TMPLT_ID_COL)
TmpltArray(noOfTmplts).RPT_FMT_TYP = Sheet18.Cells(j, RPT_FMT_TYP_COL)
TmpltArray(noOfTmplts).FNCTN_ID = Sheet18.Cells(j, FNCTN_ID_COL)
TmpltArray(noOfTmplts).TMPLT_PATH = Sheet18.Cells(j, TMPLT_PATH_COL)
TmpltArray(noOfTmplts).BNDL_PATH = Sheet18.Cells(j, BNDL_PATH_COL)
TmpltArray(noOfTmplts).RPT_NAM_GEN_CLASS = Sheet18.Cells(j, RPT_NAM_GEN_CLASS_COL)
TmpltArray(noOfTmplts).RPT_DATASOURCE_CLASS = Sheet18.Cells(j, RPT_DATASOURCE_CLASS_COL)
TmpltArray(noOfTmplts).ACK_RPT_TMPLT_ID = Sheet18.Cells(j, ACK_RPT_TMPLT_ID_COL)
TmpltArray(noOfTmplts).REC_VER_NUM = Sheet18.Cells(j, REC_VER_NUM_COL)
TmpltArray(noOfTmplts).INIT_TIME = Sheet18.Cells(j, INIT_TIME_COL)
TmpltArray(noOfTmplts).LAST_UPD_TIME = Sheet18.Cells(j, LAST_UPD_TIME_COL)
TmpltArray(noOfTmplts).LAST_UPD_BY = Sheet18.Cells(j, LAST_UPD_BY_COL)
noOfTmplts = noOfTmplts + 1
Next
End Sub
Private Sub writeToFile()
Dim lvOutputPath As String
lvOutputPath = Sheet18.Cells(PATH_OUTPUT_ROW, PATH_OUTPUT_COL) & "\" & Sheet18.Cells(FILE_OUTPUT_ROW, FILE_OUTPUT_COL)
If lvOutputPath = "" Then
MsgBox "File Output Path Missing!"
Exit Sub
End If
fileNum = FreeFile
' Open Output Path
Open lvOutputPath For Output As fileNum
Dim lvUserSql As String
For j = 0 To noOfTmplts - 1
lvUserSql = "INSERT INTO RS_RPT_TMPLT(ENTRP_CDE,RPT_TMPLT_ID,RPT_FMT_TYP,FNCTN_ID,TMPLT_PATH,BNDL_PATH,RPT_NAM_GEN_CLASS,RPT_DATASOURCE_CLASS,ACK_RPT_TMPLT_ID,REC_VER_NUM,INIT_TIME,LAST_UPD_TIME,LAST_UPD_BY) " & _
"values('TF','" & TmpltArray(j).RPT_TMPLT_ID & "','" & TmpltArray(j).RPT_FMT_TYP & "','" & TmpltArray(j).FNCTN_ID & "','" & TmpltArray(j).TMPLT_PATH & "','" & TmpltArray(j).BNDL_PATH & "','" & _
TmpltArray(j).RPT_NAM_GEN_CLASS & "','" & TmpltArray(j).RPT_DATASOURCE_CLASS & "','" & TmpltArray(j).ACK_RPT_TMPLT_ID & "'," & TmpltArray(j).REC_VER_NUM & "," & TmpltArray(j).INIT_TIME & "," & TmpltArray(j).LAST_UPD_TIME & ",'" & TmpltArray(j).LAST_UPD_BY & "');"
Print #fileNum, lvUserSql
Next
Close fileNum
MsgBox "Finished"
Exit Sub
Err_Open_File:
Close lvFileNum
If Err.Number = 76 Then
'Path Not Found
MsgBox Err.Description
Exit Sub
Else
MsgBox Err.Description
Exit Sub
End If
End Sub
介绍两种方式来生成乘法口姿信段诀表,可根据需求选用:
方式一:采用公式方式生成乘法口诀表,优点是不用宏支持,用.xlsx格式即可,拖拽即可生成,安全简单。缺点是只能在指定位置生成,不能任意位置插入。
方式二:采用宏方式,优点是可以任意位置生成乘法口诀表,缺点是必须保存为支持宏的文件格式。
方式一:公式=IF(ROW()>=COLUMN(),IF(ROW()<10,ROW()&" X "&COLUMN()&" = "&ROW()*COLUMN(),""),"")
这里指定从A1单元格开始生成。
方式二:宏生成
代码见图片
三、迹誉建议
建议为宏方式指定一个按钮或触发方坦辩式,并绑定此宏,便于使用。
在Excel工作簿中创建宏后,有时用户需要宏能够随着工作表的打开自动运行。要实现这种宏的自动运行可以巧辩使用Auto_Open过程启动和事件启动这两种方式。以下是深空游戏小编为您带来的关于让Excel工作簿中宏自动运行,希望对您有所帮助。
让Excel工作簿中宏自动运行
1、启动Excel并打开包含宏的工作表,在“开发”选项卡的“代码”组中单击“宏”按钮打开“宏”对话框,单击“编辑”按钮打开VBA编辑器窗口,如图1所示。在代码窗口中将原有的过程名更改为Auto_Open,如图2所示。切换到Excel窗口,再次打开“宏”对话框,可以看到宏的名称已经改变,如图3所示。保存该文档,当再次打开该文档时,宏将自动运行。
图1单击“编辑”按钮
图2修改过程名
图3宏名称发生改变
2、在“开发”选项卡的“代码”组中单击VisualBasic按钮打开VBA编辑器,在工程辩宽搏资源管理器窗口中双击Sheet1(Sheet1)选项,如图4所示。在打开的代码窗口的“对象”下拉列表中选择Worksheet选项,在“事件”下拉列表中选择Activate选项,在Activate事件代码中添加宏过程名,如图5所示。保存文档,这样当工作表被激活时宏将自动执行。
一、让不同类型数据用不同颜色显示
在工资表中,如果想让大于等于2000元的工资总额以“红色”显示,大于等于1500元的工资总额以“蓝色”显示,低于1000元的工资总额以“棕色”显示,其它以“黑色”显示,我们可以这样设置。
1.打开“工资表”工作簿,选中“工资总额”所在列,执行“格式→条件格式”命令,打开“条件格式”对话框。单击第二个方框右侧的下拉按钮,选中“大于或等于”选项,在后面的方框中输入数值“2000”。单击“格式”按钮,打开“单元格格式”对话框,将“字体”的“颜色”设置为“红色”。
2.按“添加”按钮,并仿照上面的操作设置好其它条件(大于等于1500,字体设置为“蓝色”;小于1000,字体设置为“棕色”)。
3.设置完成后,按下“确定”按钮。
看看工资表吧,工资总额的数据是不是按你的要求以不同颜色显示出来了。
二、建立分类下拉列表填充项
我们常常要将企业的名称输入到表格中,为了保持名称的一致性,利用“数据有效性”功能建了一个分类下拉列表填充项。
1.在Sheet2中,将企业名称按类别(如“工业企业”、“商业企业”、“个体企业”等)分别输入不同列中,建立一个企业名称数据库。
2.选中A列(“工业企业”名称所在列),在“名称”栏内,输入“工业企业”字符后,按“回车”键进行确认。
我天天做报表,,,很简单,首先你的模板公式宴御一定都要弄好,,罩竖,复制一个,,在新建一个文件,,粘贴过去,,在编辑就好了,,很简单的
!物祥大!!!
以上就是用宏实现表格自动生成的全部内容,方式一:采用公式方式生成乘法口诀表,优点是不用宏支持,用.xlsx格式即可,拖拽即可生成,安全简单。缺点是只能在指定位置生成,不能任意位置插入。方式二:采用宏方式,优点是可以任意位置生成乘法口诀表。